diff --git a/FRAuth/FRAuth/FRAuth.swift b/FRAuth/FRAuth/FRAuth.swift index 957b0246..125ac965 100644 --- a/FRAuth/FRAuth/FRAuth.swift +++ b/FRAuth/FRAuth/FRAuth.swift @@ -50,7 +50,7 @@ public final class FRAuth: NSObject { /// OAuth2Client instance for FRAuth; OAuth2Client values are retrieved from .plist configuration file var oAuth2Client: OAuth2Client? /// TokenManager instance for FRAuth to perform any token related operation - var tokenManager: TokenManager? + public var tokenManager: TokenManager? /// SessionManager instance for FRAuth to perform manage, and persist session var sessionManager: SessionManager /// KeychainManager instance for FRAuth to perform any keychain related operation to persist and/or retrieve credentials diff --git a/FRAuth/FRAuth/Manager/TokenManager.swift b/FRAuth/FRAuth/Manager/TokenManager.swift index 79b7c62f..7b0c1135 100644 --- a/FRAuth/FRAuth/Manager/TokenManager.swift +++ b/FRAuth/FRAuth/Manager/TokenManager.swift @@ -12,9 +12,9 @@ import Foundation /// TokenManager class is a management class responsible for persisting, retrieving, and refreshing OAuth2 token(s) -struct TokenManager { +public struct TokenManager { - var oAuth2Client: OAuth2Client + public var oAuth2Client: OAuth2Client var keychainManager: KeychainManager /// Initializes TokenMAnager instance with optional Access Group for shared Keychain Group identifier @@ -22,7 +22,7 @@ struct TokenManager { /// - Parameters: /// - oAuth2Client: OAuth2Client instance for OAuth2 token protocols /// - keychainManager: KeychainManager instance for secure credentials management - public init(oAuth2Client: OAuth2Client, keychainManager: KeychainManager) { + init(oAuth2Client: OAuth2Client, keychainManager: KeychainManager) { self.oAuth2Client = oAuth2Client self.keychainManager = keychainManager } @@ -357,7 +357,7 @@ struct TokenManager { /// Clears all credentials locally as there is no more valid credentials to renew user's session - func clearCredentials() { + public func clearCredentials() { self.keychainManager.cookieStore.deleteAll() let _ = try? self.keychainManager.setAccessToken(token: nil) self.keychainManager.setSSOToken(ssoToken: nil) @@ -366,6 +366,10 @@ struct TokenManager { Browser.currentBrowser = nil } + public func persistToken(token: AccessToken) { + let _ = try? self.keychainManager.setAccessToken(token: token) + } + /// Revoke given Access Token without using the Refresh Token func revokeToken(_ token: AccessToken, completion: @escaping CompletionCallback) {