> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-ss-log-app-metadata-user-metadata-clarification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how you can enhance security and mitigate risks of application impersonation with HTTPS-based callbacks.

# Migrate to Non-Verifiable Callback URI End-User Confirmation

Auth0 recommends all native applications using the [Authorization Code Flow](/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) transition to HTTPS-based callbacks using [Android App Links](https://developer.android.com/training/app-links) and [Apple Universal Links](https://developer.apple.com/documentation/xcode/allowing-apps-and-websites-to-link-to-your-content). This enhances security and mitigates risk of application impersonation and phishing attacks.

To understand how this prevents attacks, review the [Measures Against Application Impersonation](/docs/secure/security-guidance/measures-against-app-impersonation#prompt-customization).

Tenants created before October 15, 2025 maintain the previous behavior as the default until April 28, 2026. After the October cutoff date, newly created tenants may default to displaying the new login confirmation prompt with some exceptions due to each environment's deployment schedule.

Tenants that explicitly opt out will bypass this prompt indefinitely. This remains true even after April 28, 2026, when the service adopts the confirmation prompt as the default behavior and removes the "Unconfirmed Login with Non-Verifiable Callback URI Redirects" migration toggle.

## How are you affected?

For client applications that already specify or plan to specify a custom URI scheme or loopback URI callback, end-users may be required to explicitly confirm the login by interacting with the new login confirmation prompt. Your end-users may perceive this change as a declining user experience.

Additionally, authentication requests including `prompt=none` will be rejected when applications use non-verifiable callback URIs and are configured to use the new login confirmation prompt.

## Migration tasks

**Auth0 strongly recommends transitioning to HTTPS-based callbacks** using Android App Links and Apple Universal Links whenever possible for all native applications using the Authorization Code Flow.

Furthermore, in tenants where the default behavior changes after April 28, 2026, you should explicitly select the behavior you require for authentication requests using custom URI schemes or loopback URI callbacks ahead of the system default change.

### Review whether your applications are using Non-Verifiable Callback URIs

In tenants for which the Unconfirmed Login with Non-Verifiable Callback URI Redirects migration toggle is available and in an enabled state, authentication requests specifying a custom URI scheme or loopback URI **will generate a deprecation notice tenant log** unless you have explicitly set the following option at the application or tenant level:

`skip_non_verifiable_callback_uri_confirmation_prompt`

These tenant logs contain the client identifier of the application performing the request. You can monitor these tenant logs through the Auth0 Dashboard using the following query:

```bash theme={null}
type:depnotetype:depnote AND description:Unconfirmed\ Login\ with\ Non-Verifiable\ Callback\ URI\ Redirects*
```

### Opt in to new login confirmation prompt

To opt-in to the new login confirmation prompt ahead of time and enhance security for authentication flows using custom URI schemes or loopback URIs, complete the following steps through your Auth0 Dashboard:

1. Navigate to [**Auth0 Dashboard > Tenant Settings > Advanced**](https://manage.auth0.com/#/tenant/advanced).
2. In the **Migrations** section, turn off the **Unconfirmed Login with Non-Verifiable Callback URI Redirects** toggle.

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=59695a2a9f878d5dc69f773489a6158e" alt="Auth0 Dashboard > Tenant Settings > Advanced > toggle off" data-og-width="502" width="502" data-og-height="128" height="128" data-path="docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?w=280&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=a22342272aa35026b5b8f311bb2a3425 280w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?w=560&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=75fc068d956c9daf70a56b8d2875d58e 560w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?w=840&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=c24a7fd42843e91519a2704e443a473f 840w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?w=1100&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=4901f4aed5dac4a8e60a9df338ff2214 1100w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?w=1650&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=a5061e237d5e42119c7d3ec2e7aa662c 1650w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/unconfirmed-login-uri.png?w=2500&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=10c46533511211d294e9efc5bde25825 2500w" />
</Frame>

### Opt out of new login confirmation prompt

If, after evaluating the security considerations, you decide against using the new login confirmation prompt, you can configure specific applications or the whole tenant to opt out of the new behavior. You can do so through your Auth0 Dashboard.

The application-level setting takes precedence over the tenant-level setting. Ensure you configure application-specific settings before changing the tenant-level setting to avoid unintended behavior changes. For example, you may want to skip the Non-Verifiable Callback URI End-User Confirmation for some specific applications while, by default, showing it for other applications, or vice versa.

To opt out for specific applications:

1. Navigate to [Auth0 Dashboard > Applications > Settings > Advanced Settings > OAuth](https://manage.auth0.com/applications/settings).
2. Locate and disable the **Non-Verifiable Callback URI End-User Confirmation** toggle and select **Save**. You may need to select the **Override the tenant setting** option to permanently allow managing this configuration.

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=fcf2820f221593b2e54b9d582f2cc902" alt="Auth0 Dashboard > Applications > Settings > Advanced" data-og-width="602" width="602" data-og-height="227" height="227" data-path="docs/images/cdy7uua7fh8z/custom-uri-override.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=280&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=539c6b3f0b228d36eded5f93526533ff 280w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=560&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=cf001ba51fecdcc6cd44bce71c02a74a 560w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=840&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=e7bbecf8b3e12f53f949935cb12c4e90 840w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1100&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=33ea41c6578587e0755c69ae65b7724f 1100w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=1650&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=59bef457022aabfe3e3918de5c300c2e 1650w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/custom-uri-override.png?w=2500&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=e1b44aab39f853cefb4c7f3ddd7392fb 2500w" />
</Frame>

To opt out for the whole tenant:

1. Navigate to [Auth0 Dashboard > Tenant Settings > Advanced](https://manage.auth0.com/tenant/advanced).
2. Locate and disable the **Non-Verifiable Callback URI End-User Confirmation** toggle within the **Login and Logout** section and select **Save**. You may need to select **Turn on** to allow permanently managing this configuration.

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=d447dc5cc5a2cdaf8e664e5c4ca0cbfa" alt="Auth0 Dashboard > Tenant Settings > Advanced" data-og-width="552" width="552" data-og-height="173" height="173" data-path="docs/images/cdy7uua7fh8z/migrate-uri-setting.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?w=280&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=5111c12fd2ec46cd3282f79f9d88348d 280w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?w=560&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=aa628371ecf5234a52045b4eb9a7cf4d 560w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?w=840&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=2c750e6a193e55623b2938659afbc96b 840w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?w=1100&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=73657111c4ae94da1e867e861fa5e690 1100w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?w=1650&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=6032e9ee7a5bfc290e891a6ae0a01171 1650w, https://mintcdn.com/docs-dev-fix-ss-log-app-metadata-user-metadata-clarification/Je3Piv8w5vVD3Lzz/docs/images/cdy7uua7fh8z/migrate-uri-setting.png?w=2500&fit=max&auto=format&n=Je3Piv8w5vVD3Lzz&q=85&s=3f856c2ddbb78c207fa0a87df72c5d91 2500w" />
</Frame>

You can also configure the required tenant behavior via Auth0 Management API. In particular, you can perform the configuration at two levels:

* **Tenant-Level Configuration**: You can manage the confirmation prompt behavior by setting the `skip_non_verifiable_callback_uri_confirmation_prompt` property via the [Update Tenant Settings](https://auth0.com/docs/api/management/v2#!/Tenants/patch_settings) endpoint.​
* **Application-Level Configuration**: To override the tenant-level setting for specific applications, set the same `skip_non_verifiable_callback_uri_confirmation_prompt` property via the [Update Client](https://auth0.com/docs/api/management/v2#!/Clients/patch_clients_by_id) endpoint.

For additional information and guidance on configuring your applications, read [Measures Against Application Impersonation](/docs/secure/security-guidance/measures-against-app-impersonation).
