Labels: bug, ios, passkey, usability
Priority: Medium
Estimated Time: 1 hour
Description:
AuthStore.register(username:) (Stores.swift:26-36) calls PasskeyService.shared.register()
(one Face ID/Touch ID prompt) and then, on success, calls await signIn(), which calls
PasskeyService.shared.authenticate() — a second, independent passkey ceremony and a second
biometric prompt, seconds after the first, for no functional reason beyond obtaining a token.
Tasks:
- Have the backend's
/auth/register response return a session token directly, or
- Reuse the registration's own attestation to mint the session without a second
ASAuthorizationController round trip
- Add a UI test asserting only one biometric prompt fires during the registration flow
Labels:
bug,ios,passkey,usabilityPriority: Medium
Estimated Time: 1 hour
Description:
AuthStore.register(username:)(Stores.swift:26-36) callsPasskeyService.shared.register()(one Face ID/Touch ID prompt) and then, on success, calls
await signIn(), which callsPasskeyService.shared.authenticate()— a second, independent passkey ceremony and a secondbiometric prompt, seconds after the first, for no functional reason beyond obtaining a token.
Tasks:
/auth/registerresponse return a session token directly, orASAuthorizationControllerround trip