WebAuthentication

Authentication coordinator that simplifies signing users in using browser-based OIDC authentication flows.

This simple class encapsulates the details of launching the browser, and coordinating with OAuth2 endpoints.

To customize the flow, please read more about customization options: WebAuthenticationProvider, DefaultWebAuthenticationProvider. To further customize the authentication flow, please read more about the underlying flows: AuthorizationCodeFlow, RedirectEndSessionFlow.

Constructors

Link copied to clipboard
constructor(oAuth2Client: OAuth2Client, webAuthenticationProvider: WebAuthenticationProvider = DefaultWebAuthenticationProvider(EventCoordinator(emptyList())))

Initializes a web authentication client backed by a KMP OAuth2Client.

constructor(webAuthenticationProvider: WebAuthenticationProvider = DefaultWebAuthenticationProvider(OidcConfiguration.default.eventCoordinator))

Initializes a web authentication client.

constructor(oidcConfiguration: OidcConfiguration, webAuthenticationProvider: WebAuthenticationProvider = DefaultWebAuthenticationProvider(oidcConfiguration.eventCoordinator))

Initializes a web authentication client.

constructor(client: OAuth2Client, webAuthenticationProvider: WebAuthenticationProvider = DefaultWebAuthenticationProvider(client.configuration.eventCoordinator))

Initializes a web authentication client backed by an Android-only OAuth2Client.

Types

Link copied to clipboard
object Companion
Link copied to clipboard

Surfaced as the failure cause of a login or logoutOfBrowser call — inside a failed Result for the List-scope login overload, or as OAuth2ClientResult.Error.exception for logoutOfBrowser and the deprecated String-scope login overload.

Link copied to clipboard

Surfaced as the failure cause of a login or logoutOfBrowser call — inside a failed Result for the List-scope login overload, or as OAuth2ClientResult.Error.exception for logoutOfBrowser and the deprecated String-scope login overload.

Functions

Link copied to clipboard
suspend fun login(context: Context, redirectUrl: String, scope: List<String>, extraRequestParameters: Map<String, String> = emptyMap()): Result<TokenInfo>

Initiates the OIDC Authorization Code redirect flow. Suspends until the browser redirect completes or the user cancels. Preferred over the String-scope overload.

suspend fun login(context: Context, redirectUrl: String, extraRequestParameters: Map<String, String> = emptyMap(), scope: String = defaultScopeValue.joinToString(" ")): OAuth2ClientResult<Token>

Initiates the OIDC Authorization Code redirect flow.

Link copied to clipboard
suspend fun logoutOfBrowser(context: Context, redirectUrl: String, idToken: String): OAuth2ClientResult<Unit>

Initiates the OIDC logout redirect flow.