Feature detection in Safari 14 (running on macOS Big Sur on Intel MacBook Pro) is returning false. Tested this in localhost and HTTPS served pages with no luck. As per the Meet Face ID and Touch ID for the web session, it is supposed to be available. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().then(console.log) // resolves to false Is the feature available? Is there anything that has to be installed or enabled explicitly?
isUserVerifyingPlatformAuthenticatorAvailable
7 results found
Post
Replies
Boosts
Views
Activity
Should this work on Catalina (10.15.6)? I tried Safari Beta (Version 14.0 (15610.1.28.1.7, 15610), and have the appropriate experimental features set, but isUserVerifyingPlatformAuthenticatorAvailable() is always false. Using Chrome browser on same laptop I get true (and can register and authenticate using touch id). Does this only work in Safari on Big Sur?
Before promoting passkey registration, I would like to check whether the user device has platform authenticator (or passkey platform authenticator). While trying to search such feature in the docs, I cannot find it anywhere. Is this intended? If there is no such api, how can we know whether the user can register passkey?
Hi, Thanks for the confirmation about the attStmt. Looks like the flow for RP during Passkey enrollment is, Check for isUserVerifyingPlatformAuthenticatorAvailable to show the Passkey enroll button Take the user through an enrollment and then reject the enrollment if it has an attStmt(implying it is a non syncing platform authenticator and thus not a Passkey)? Understand providing this signal is being discussed at the spec level as u mentioned but meanwhile double checking to make sure there is no better way to figure out Passkeys without taking the user through a enrollment.
I recently ran into some issues using WebAuthn in the context of WKWebView and happened to run across the answer to your question. I ran into this while investigating this bug: https://bugs.webkit.org/show_bug.cgi?id=237380a Per comments from WebKit devs on that bug, WebAuthn is not supported in WKWebView unless your app specifically has the Web Browser entitlement in which case it is then enabled. Also, if you invoke WebAuthn-related functions like navigator.credentials.create() or window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() there is a bug where the promise returned from those methods in a WKWebView context on iOS never resolves. I ended up working around it by executing the initial isUserVerifyingPlatformAuthenticatorAvailable() in a Promise.race() with a timeout so that I could at least determine that WebAuthn was not supported in that context. Hope this helps, Kevin Flanagan
On Catalina (10.15.6) should isUserVerifyingPlatformAuthenticatorAvailable() return false? I tried Safari Beta (Version 14.0 (15610.1.28.1.9, 15610), and enabled When Authentication Local Authenticator under Experimental Features in the Develop menu, but isUserVerifyingPlatformAuthenticatorAvailable() is always false. Using Chrome browser on same laptop I get true (and can register and authenticate using touch id). Does this only work in Safari on Big Sur?
Very helpful video, thank you. i have both an iPad with iOS 14 and a MacBook Pro with Safari 14. Neither are responding with true when checking isUserVerifyingPlatformAuthenticatorAvailable(). What are minimal versions of Safari needed for this? We are excited to leverage Face/Touch on browsers.