Skip to content

iOS Safari fails on conditional UI on page refresh #348

@rmmeans

Description

@rmmeans

Hi!

I think my issue may be a Safari bug itself. I am currently working on implementing passkey support with conditional mediation for a product I support and had not used your library yet (looks nice!! 👀). I found your implementation when testing our own and I was able to reproduce an issue we are having with your implementation directly on your example.simplewebauthn.dev site.

Here's what I'm doing, I wanted to see if you are seeing a similar experience.

The following steps need to be done on an iOS device running iOS 16 (I'm running iPadOS 16.2 in the following example)

  1. Load https://example.simplewebauthn.dev/ in Safari
  2. Attach remote debugger via Safari on mac (not necessary, but useful to see error)
  3. After registering, reload the page so you get the conditional UI login.
  4. This page load should work, and you should be able to login via conditional UI. HOWEVER, refresh one more time instead of logging in.
  5. Your console should see an error of NotAllowedError: User clicked cancel, or the authentication ceremony timed out

If you get the error in step 5, the conditional mediation promise died. This is odd however, because it happened immediately on the page refresh. If you refresh a second time, you will have no console error and can proceed with login. Refresh a third time, and you are back to the error again in your console (and unable to login). Curious if you have any thoughts on this? Seems like a safari bug on iOS. I haven't been able to reproduce on Safari on Mac.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions