DropboxOAuthManager

public class DropboxOAuthManager : AccessTokenRefreshing

Manages access token storage and authentication

Use the DropboxOAuthManager to authenticate users through OAuth2, save access tokens, and retrieve access tokens.

@note OAuth flow webviews localize to enviroment locale.

Shared instance

  • A shared instance of a DropboxOAuthManager for convenience

    Declaration

    Swift

    public static var sharedOAuthManager: DropboxOAuthManager!

Functions

  • Create an instance parameter appKey: The app key from the developer console that identifies this app.

    Declaration

    Swift

    public convenience init(appKey: String, secureStorageAccess: SecureStorageAccess)
  • Try to handle a redirect back into the application

    Declaration

    Swift

    public func handleRedirectURL(_ url: URL, completion: @escaping DropboxOAuthCompletion) -> Bool

    Parameters

    url

    The URL to attempt to handle.

    completion

    The callback closure to receive auth result.

    Return Value

    Whether the redirect URL can be handled.

  • Present the OAuth2 authorization request page by presenting a web view controller modally.

    Declaration

    Swift

    public func authorizeFromSharedApplication(
        _ sharedApplication: SharedApplication, usePKCE: Bool = false, scopeRequest: ScopeRequest? = nil
    )

    Parameters

    controller

    The controller to present from.

    usePKCE

    Whether to use OAuth2 code flow with PKCE. Default is false, i.e. use the legacy token flow.

    scopeRequest

    The ScopeRequest, only used in code flow with PKCE.

  • Retrieve all stored access tokens

    Declaration

    Swift

    public func getAllAccessTokens() -> [String : DropboxAccessToken]

    Return Value

    a dictionary mapping users to their access tokens

  • Check if there are any stored access tokens

    Declaration

    Swift

    public func hasStoredAccessTokens() -> Bool

    Return Value

    Whether there are stored access tokens

  • Retrieve the access token for a particular user

    Declaration

    Swift

    public func getAccessToken(_ user: String?) -> DropboxAccessToken?

    Parameters

    user

    The user whose token to retrieve

    Return Value

    An access token if present, otherwise nil.

  • Delete a specific access token

    Declaration

    Swift

    public func clearStoredAccessToken(_ token: DropboxAccessToken) -> Bool

    Parameters

    token

    The access token to delete

    Return Value

    whether the operation succeeded

  • Delete all stored access tokens

    Declaration

    Swift

    public func clearStoredAccessTokens() -> Bool

    Return Value

    whether the operation succeeded

  • Save an access token

    Declaration

    Swift

    @discardableResult
    public func storeAccessToken(_ token: DropboxAccessToken) -> Bool

    Parameters

    token

    The access token to save

    Return Value

    whether the operation succeeded

  • Utility function to return an arbitrary access token

    Declaration

    Swift

    public func getFirstAccessToken() -> DropboxAccessToken?

    Return Value

    the “first” access token found, if any (otherwise nil)

Short-lived token support.

  • Refreshes a (short-lived) access token for a given DropboxAccessToken.

    Note

    Completion block will be called on main queue if a callback queue is not provided.

    Declaration

    Swift

    public func refreshAccessToken(
        _ accessToken: DropboxAccessToken,
        scopes: [String],
        queue: DispatchQueue?,
        completion: @escaping DropboxOAuthCompletion
    )

    Parameters

    accessToken

    A DropboxAccessToken object.

    scopes

    An array of scopes to be granted for the refreshed access token. The requested scope MUST NOT include any scope not originally granted. Useful if users want to reduce the granted scopes for the new access token. Pass in an empty array if you don’t want to change scopes of the access token.

    queue

    The queue where completion block will be called from.

    completion

    A DropboxOAuthCompletion block to notify caller the result.

  • Creates an AccessTokenProvider that wraps short-lived for token refresh or a static provider for long-live token.

    Declaration

    Swift

    public func accessTokenProviderForToken(_ token: DropboxAccessToken) -> AccessTokenProvider

    Parameters

    token

    The DropboxAccessToken object.