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. Only supports flows that never leave the app. Use WebProvider or webviewLogin instead. |
Examples
import UIKit
import Foundation
import Reach5
class LoginWKWebviewController: UIViewController {
@IBOutlet var loginWebview: LoginWKWebview!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
Task {
do {
let authToken = try await loginWebview.loadLoginWebview(reachfive: AppDelegate.reachfive())
goToProfile(authToken)
} catch {
let alert = AppDelegate.createAlert(title: "Login failed", message: "Error: \(error.localizedDescription)")
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: AuthToken
-
Error: 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: Nothing happened, and nothing is expected of you — ignoring it is a valid way to handle it.
This can happen for any of the following reasons:-
The user canceled the request.
-
No passkey was saved for your app.
-
A web login was dropped because another one was already in progress. See webviewLogin.
-
The app is not associated with the host of an
WebProvider.universalLinkcallback. See guides/apple-app-site-association.adoc#webcredentials.
-
-
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[] |
|