Native applications
Native applications use a public NATIVE client, Authorization Code with S256 PKCE and an exact registered redirect URI. The OAuth token endpoint remains the only token issuer.
Choose the user experience
| Model | Credential UI | Browser SSO | Client responsibility |
|---|---|---|---|
| hosted AppAuth login | Identity in the system browser | yes | callback, token validation, secure storage and refresh |
| native credential API | application UI | no | interaction, credentials, MFA, callback validation, secure storage and refresh |
Hosted AppAuth login is the default integration. It keeps registration, password recovery, upstream providers, MFA and consent inside Identity. Use the mobile AppAuth tutorial for the complete flow.
The first-party native adapter is an explicit alternative for products that must collect credentials in native UI. The client must have nativeAuthenticationEnabled: true.
Flow
For hosted login, AppAuth discovers the issuer, opens /oauth2/authorize in the system browser and exchanges the callback code using the verifier it generated.
For native credential UI:
- Create an interaction at
{issuer}/oauth2/native/interactionswith the client, callback, requested scopes, PKCE challenge, state and OIDC nonce. - Complete one supported authentication method against that interaction: password, email code or a configured upstream identity.
- Complete TOTP or recovery-code verification when the response requires MFA.
- Validate the returned issuer, state and callback.
- Exchange the one-use authorization code at
{issuer}/oauth2/tokenwith the PKCE verifier.
The client must be explicitly enabled for native authentication. Interactive account selection, consent and unsupported prompts return browser_required; continue the same live interaction through the browser.
Credential management
Native registration and password recovery use separate one-use grants. They change credentials but do not create a login session or return OAuth tokens. Authenticate again after completion.
Social identity
Google, Apple and other native ID tokens are accepted only for configured provider audiences and authorized parties. An unlinked upstream identity never silently takes over an existing email account. An occupied email requires explicit account linking.