webviewLogin
AppDelegate.reachfive().webviewLogin(WebviewLoginRequest( presentationContextProvider // optional state, nonce, scope, (1) ))
1 | Scope isn’t explicitly required. If not provided here, it defaults to the scopes set up in the client configuration which is picked up when you initiliaze the iOS SDK. |
Description
Opens a secure webview through the authorization endpoint.
You must have configured a Login URL and enabled request orchestration tokens for your identity client. Orchestrated flows are supported from version |
-
If end-users have an active web SSO session, then the authorization endpoint immediately redirects to the application.
-
If end-users do not have an active web SSO session, they are redirected to the client’s Login URL for authentication.
When logging in with secure webview, a dialog pops up where you must select Continue and acknowledge that by continuing "This allows the app and the website to exchange information about you".
![secure login dialog](_images/secure-login-dialog.png)
Usage
Because of the presentationContextProvider
property, you must ensure that your UIViewController implements the ASWebAuthenticationPresentationContextProviding
protocol.
To do this, add the following to your UIViewController:
func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
view.window!
}
Examples
AppDelegate
.reachfive()
.webviewLogin(WebviewLoginRequest(
state: "zf3ifjfmdkj",
nonce: "n-0S6_PzA3Ze",
scope: ["openid", "profile", "email"],
presentationContextProvider: self
))
.onSuccess{ authToken in
// Get the profile's authentication token
}
.onFailure { error in
// Return a ReachFive error
}
Parameters
Parameter | Description | ||
---|---|---|---|
A delegate that provides a display context whereby the system is able to present an authentication session to the user.
|
|||
The OAuth2 state value.
|
|||
An OIDC nonce value.
|
|||
The scopes granted to the profile. Make sure they are allowed by the client. Default scopes are the allowed scopes set up in the client’s configuration. |
Response
Type: Future<AuthToken, ReachFiveError>
AuthToken
The authentication token.
idToken |
The ID token JSON Web Token (JWT) that contains the profile’s information. |
||||||||||||||||||||||||||||||||||
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:
-
RequestError(requestErrors: RequestErrors)
if it’s a bad request error.error
string
The main error message.
errorId
string
The identifier of the error.
errorUserMsg
string
The user-friendly error message.
This property is translated according to the user’s browser settings. Currently supported languages: - Currently supported languages
-
-
ar
- العربية Arabic -
de
- Deutsch German -
en
- English -
es
- Español Spanish -
fr
- Français French -
hu
- Magyar Hungarian -
it
- Italiano Italian -
jp
- 日本 Japanese -
ko
- 한국인 Korean -
nl
- Nederlands Dutch -
pt
- Portuguese -
ru
- Ру́сский Russian -
sk
- Slovenský Slovak -
zh-CN
- People’s Republic of China Simplified Chinese -
zh-Hans
- Simplified Chinese -
zh-Hant
- Traditional Chinese -
zh-HK
- Hong Kong Traditional Chinese -
zh-MO
- Macao Traditional Chinese -
zh-SG
- Singapore Simplified Chinese -
zh-TW
- Taiwan Traditional Chinese
-
errorMessageKey
string
The error message key.
errorDescription
string
The technical error message.
errorDetails FieldError[]
field
string
The field concerned by the error.
message
string
The message error returned for the
field
.code
string
The code error returned for the
field
.-
AuthFailure(reason: String)
if the authentication has failed. -
AuthCanceled
if the authentication was cancelled. -
TechnicalError(reason: String)
if it’s an internal server error.