OAuthAuthenticator

public class OAuthAuthenticator : Authenticator

An OAuth based authentication strategy for authenticating a user on Cisco Webex.

Since

1.2.0
  • See

    See Authenticator.authorized

    Since

    1.2.0

    Declaration

    Swift

    public var authorized: Bool { get }
  • Creates a new OAuth authentication strategy

    • OAuthAuthenticator - This should be used when the SDK is to be authenticated as a registered user to Cisco Webex cloud.

    Since

    1.2.0

       let clientId = "Def123456..."
       let clientSecret = "fed456..."
       let scope = "spark:all meeting:schedules_write"
       let redirectUri = "MyCustomApplication://response"
       let emailId = "user@example.com"
       let authenticator = OAuthAuthenticator(clientId: clientId, clientSecret: clientSecret, scope: scope, redirectUri: redirectUri, emailId: emailId)
       let webex = Webex(authenticator: authenticator)
       ...
         authenticator.authorize(parentViewController: self) { success in
           if !success {
               print("User not authorized")
           }
         }
    

    Declaration

    Swift

    public convenience init(clientId: String, clientSecret: String, scope: String = "spark:all", redirectUri: String, emailId: String)

    Parameters

    clientId

    The OAuth client id

    clientSecret

    The OAuth client secret

    scope

    Space separated list of any additional scopes that your access token should have. Note: spark:all scope should be always provided. Please contact support if you want to add new scopes to your app.

    redirectUri

    The redirect URI that will be called when completing the authentication. This must match the redirect URI registered to your clientId.

    emailId

    The email address of the webex user.

  • Brings up a web-based authorization view controller and directs the user through the OAuth process

    Declaration

    Swift

    public func authorize(parentViewController: UIViewController, completionHandler: ((_ result: OAuthResult) -> Void)?)

    Parameters

    parentViewController

    The parent view controller for the OAuth view controller

    completionHandler

    The completion handler will be called when authentication is complete, with a OAuthResult to indicate if the authentication process was successful. It will be called directly after the OAuth view controller has begun to dismiss itself in an animated way.

    Return Value

    Void

  • Handles fetching the access token using the OAuth code generated during authorization. Assumes the application handles the authentication part of the process itself.

    Since

    2.6.0

    Declaration

    Swift

    public func authorize(oauthCode: String, completionHandler: ((_ result: OAuthResult) -> Void)? = nil)

    Parameters

    code

    the OAuth code generated during authorization.

    completionHandler

    the completion handler will be called when fetching the access token is complete, with a boolean to indicate if the process was successful.

  • Returns an access token of this Authenticator.

    This may involve long-running operations such as service calls, but may also return immediately. The application should not make assumptions about how quickly this completes. If the access token could not be retrieved then the completion handler will be called with nil.

    Since

    1.2.0

    Declaration

    Swift

    public func accessToken(completionHandler: @escaping (_ accessToken: Result<String>) -> Void)

    Parameters

    completionHandler

    a closure to be executed when completed, with the access token if successfully retrieved, otherwise nil.

  • Deauthorizes the current user and clears any persistent state with regards to the current user.

    Since

    1.2.0

    Declaration

    Swift

    public func deauthorize(completionHandler: (() -> Void)?)
  • Provides an authorization url that can used for first leg of OAuth2

    Since

    3.1.0

    Declaration

    Swift

    public func getAuthorizationUrl(completionHandler: @escaping (OAuthResult, URL?) -> Void)

    Parameters

    completionHandler

    the completion handler will be called when fetching the authorizationUrl is complete, with a OAuthResult and the authorization URL to indicate if the process was successful.