Skip to content

TOTP setup stage: add a "set up on this device" link #27397

Description

@saltedlolly

Is your feature request related to a problem?

When a user sets up TOTP on the same phone they're signing in on, the TOTP setup stage only offers a QR code (which that phone can't scan) and the "Copy TOTP Config" / "Copy Secret" buttons. On iOS that means copying the secret, opening the password manager, finding the right login and pasting the key by hand. Less technical users struggle with this.

Describe the solution you'd like

Add a link button next to the copy buttons, e.g. "Open in authenticator app", whose href is the existing TOTP config URI (otpauth://totp/...).

I tested this on iOS 18 with a page containing such a link: tapping it opens the app chosen under Settings > General > AutoFill & Passwords > Set Up Codes In (1Password in my case), which then asks which login to attach the code to. Android authenticator apps register the same scheme.

This would be a frontend-only change in web/src/flow/stages/authenticator_totp/AuthenticatorTOTPStage.ts, reusing this.challenge.configUrl. No API change.

Describe alternatives that you've considered

  • Apple's apple-otpauth:// variant (Apple docs). In my test it always opens Apple Passwords, even when the user has chosen another app, so the plain otpauth:// link seems the better default.
  • Setting issuer to the site's domain so the password manager can match the login. In my test neither Apple Passwords nor 1Password used it: both still showed the full list to choose from. So I'm not proposing any change to the issuer.

Additional context

I'm happy to open a PR for this if the approach sounds right. I used Claude Code (Anthropic) to research Apple's behaviour and draft this issue; I've reviewed and edited it.

Activity

  1. added
    enhancementNew feature or request
    triageAdd this label to issues that need to be triaged
    on Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttriageAdd this label to issues that need to be triaged

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions