New Dashboard Notice
Bolt has launched a new Merchant Dashboard experience. See this corresponding page for help documentation that reflects the Legacy Dashboard.
Please note that Legacy Dashboard documentation may no longer have up to date information on our newest features and releases.
After you’ve successfully set up the Bolt iOS SDK and payment provider, you can add SSO login capabilities. With this feature, you no longer need to maintain a login session.
Instead, this feature enables a session that automatically carries over to the checkout flow.
Before You Start
Before you start, you must configure your app to:
- Migrate shopper accounts to Bolt Accounts by enabling SSO Commerce.
- Include a login button to present the SSO login page.
Set Up
To set up SSO login on your iOS app, you’ll need to:
- First create a configuration with your Bolt Publishable Key. You can find your Bolt Publishable Key in your Merchant Dashboard. Navigate to Administration > API > Identifiers. The publishable key is a long string of lower and upper case letters and numbers that consists of three sections.
- Present the SSO Login View.
- Retrieve the Access Token from your store server.
Create a BoltCheckout Instance
First, create a configuration with your publishable key. This is required to create a SSO login url within the SDK.
// Create a BoltCheckout with your publishable key
let checkout = BoltCheckout(publishableKey: publishableKey, environment: .production)
Present SSO Login View
When a shopper taps the login button, startLogin
is called to display the SSO login web page in full screen. When the login process is complete, the app receives a BoltSSOLoginResult
notification. Upon a successful login, the view is dismissed and an authorization code is returned to your app.
checkout.startLogin(presentingViewController: self) { result in
switch result {
case .completed(let authorizationCode):
// Do your own handling with authorization code returned
print("login succeeded with auth code: ", authorizationCode)
case .canceled:
print("login canceled")
case .failed(let error):
print("login failed with error: ", error.localizedDescription)
}
}
}
Retrieve Access Token
After your app receives the authorization code from the completion block of startLogin
, send the authorization code to your store server (/oauth/token
) to exchange the authorization code for an access token.