TF-2384 Handle refresh token when token expired in NSE
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit c8a39bb42792770c001ac90d6301d53126225d95)
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
import Foundation
|
||||
|
||||
protocol Authentication {
|
||||
var type: AuthenticationType { get }
|
||||
|
||||
func getAuthenticationHeader() -> String
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import Foundation
|
||||
|
||||
struct AuthenticationCredential: Authentication {
|
||||
var type: AuthenticationType
|
||||
|
||||
let basicAuth: String
|
||||
|
||||
init(type: AuthenticationType, basicAuth: String) {
|
||||
self.type = type
|
||||
self.basicAuth = basicAuth
|
||||
}
|
||||
|
||||
func getAuthenticationHeader() -> String {
|
||||
return "Basic \(basicAuth)"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import Foundation
|
||||
|
||||
struct AuthenticationSSO: Authentication {
|
||||
var type: AuthenticationType
|
||||
|
||||
let accessToken: String
|
||||
let refreshToken: String
|
||||
let expireTime: String?
|
||||
|
||||
init(type: AuthenticationType, accessToken: String, refreshToken: String, expireTime: String?) {
|
||||
self.type = type
|
||||
self.accessToken = accessToken
|
||||
self.refreshToken = refreshToken
|
||||
self.expireTime = expireTime
|
||||
}
|
||||
|
||||
func getAuthenticationHeader() -> String {
|
||||
return "Bearer \(accessToken)"
|
||||
}
|
||||
|
||||
func isExpiredTime() -> Bool {
|
||||
guard let expireTime else {
|
||||
return false
|
||||
}
|
||||
|
||||
guard let expireDate = expireTime.convertISO8601StringToDate(),
|
||||
expireDate.isBefore(Date.now) else {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
}
|
||||
@@ -2,13 +2,7 @@ import Foundation
|
||||
|
||||
struct TokenOidc: Codable {
|
||||
let token: String
|
||||
let tokenId: String
|
||||
let tokenId: String?
|
||||
let expiredTime: String?
|
||||
let refreshToken: String
|
||||
}
|
||||
|
||||
extension TokenOidc {
|
||||
func getAuthorization() -> String {
|
||||
return "Bearer \(token)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import Foundation
|
||||
|
||||
struct TokenResponse: Codable {
|
||||
let accessToken: String?
|
||||
let refreshToken: String?
|
||||
let expiresTime: Int?
|
||||
let refreshExpiresIn: Int?
|
||||
let tokenId: String?
|
||||
let tokenType: String?
|
||||
let scope: String?
|
||||
let sessionState: String?
|
||||
let error: String?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case accessToken = "access_token"
|
||||
case refreshToken = "refresh_token"
|
||||
case expiresTime = "expires_in"
|
||||
case refreshExpiresIn = "refresh_expires_in"
|
||||
case tokenId = "id_token"
|
||||
case tokenType = "token_type"
|
||||
case scope
|
||||
case sessionState = "session_state"
|
||||
case error
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user