"No available authenticator recognized any of the allowed credentials" in iOS, even in example app #211
Replies: 6 comments 15 replies
-
What kind of authenticators are you using on desktop and on iOS? Maybe it‘s got something to do with the allowCredentials flag on the server side? |
Beta Was this translation helpful? Give feedback.
-
On the desktop I have the |
Beta Was this translation helpful? Give feedback.
-
I think I know what's going on: Safari typically allows websites a single "freebie" indirect execution of WebAuthn. If there was any kind of asynchronicity before your call to one of the Fortunately sometime back in February Apple eased up on that, and now websites were more free to make API requests and perform other actions before ultimately calling WebAuthn, but only once for a given page load. After that you'd potentially have to reload the page to get WebAuthn to reliably trigger again. I tested my example site on iOS too and no matter which button I clicked first, the first button would act as expected, while the second button would always error out in the same way you described. This is making me believe that you're describing that Safari limitation. |
Beta Was this translation helpful? Give feedback.
-
Hmm, is there any workaround for that, then? This is in React, so there's potentially an infinite number of events before any WebAuthn invocation! |
Beta Was this translation helpful? Give feedback.
-
I just converted this issue into a discussion since it's been confirmed to be a WebKit restriction on the use of WebAuthn. |
Beta Was this translation helpful? Give feedback.
-
Got the same problem. I changed fetch to XMLHttpRequest and the problem disappeared 🪄 |
Beta Was this translation helpful? Give feedback.
-
Got my implementation working beautifully in Chrome and Safari on the desktop, no problems.
Moving to iOS (15.5), registration works, but when I go to authenticate I get
No available authenticator recognized any of the allowed credentials
mycatch
block around thestartAuthentication()
function. I thought maybe something about my specific implementation was messed up so I tried in the example app and I see the same thing:Anyone else seen this?
Beta Was this translation helpful? Give feedback.
All reactions