loadLoginWebview
loginWebview.loadLoginWebview(reachfive: AppDelegate.reachfive())
Description
Opens an insecure webview through the authorization endpoint:
-
If end-users have an active in-app SSO session, the authorization endpoint immediately redirects to the application.
-
If end-users do not have an active in-app SSO session, they are redirected to the client’s Login URL for authentication.
You must have configured a Login URL and enabled request orchestration tokens for your identity client. Orchestrated flows are supported from version |
We recommend using the standard native login or standard webview login for iOS. Proceed with caution while using this particular method for user authentication. |
Examples
import UIKit
import Foundation
import Reach5
import BrightFutures
class LoginWKWebviewController: UIViewController {
@IBOutlet var loginWebview: LoginWKWebview!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let promise = Promise<AuthToken, ReachFiveError>()
loginWebview.loadLoginWebview(reachfive: AppDelegate.reachfive(), promise: promise)
promise.future
.onSuccess(callback: goToProfile)
.onFailure( error in
let alert = AppDelegate.createAlert(title: "Login failed", message: "Error: \(error.message())")
self.present(alert, animated: true)
)
}
}
You can find this example with its UI integration in the ReachFive sandbox. |
Customisation
To further customise the behaviour and appearance of the WKWebview
, please see the ReachFive sandbox.
Response
Type: Future<AuthToken, ReachFiveError>
AuthToken
The authentication token.
idToken |
The ID token JSON Web Token (JWT) that contains the profile’s information. This is only available when the |
||||||||||||||||||||||||||||||||||
accessToken |
The authorization credential JSON Web Token (JWT) used to access the ReachFive API. |
||||||||||||||||||||||||||||||||||
refreshToken |
The refresh token JSON Web Token (JWT) used to obtain new access tokens once they expire. This is only available when the |
||||||||||||||||||||||||||||||||||
tokenType |
The type of token. Always equal to |
||||||||||||||||||||||||||||||||||
expiresIn |
The lifetime in seconds of the access token. If |
||||||||||||||||||||||||||||||||||
user OpenIDUser |
The user’s information contained in the ID token.
|
ReachFiveError
Based on the problem, the ReachFiveError
will be:
-
AuthCanceled
: The user cancelled the request or no credential was available in the keychain. -
RequestError(apiError: ApiError)
for a Bad Request (status 400) error. -
AuthFailure(reason: String, apiError: ApiError?)
mainly for Unauthorized (status 401) error. -
TechnicalError(reason: String, apiError: ApiError?)
if it’s an Internal Server Error (status 500) or other internal errors.
ApiError
error |
The main error message. |
||||||
errorId |
The identifier of the error. |
||||||
errorUserMsg |
The user-friendly error message.
|
||||||
errorMessageKey |
The error message key. |
||||||
errorDescription |
The technical error message. |
||||||
errorDetails FieldError[] |
|