- From: Eric Stern via GitHub <sysbot+gh@w3.org>
- Date: Sat, 04 May 2024 00:02:40 +0000
- To: public-webauthn@w3.org
Firehed has just created a new issue for https://github.com/w3c/webauthn: == Provide a mechanism to indicate backend registration success or failure == ## Description When registering a new credential (in particular using passkeys), there exists a weird edge case where the browser APIs succeed but the backend processing fails or hangs. This can result in a confusing experience for users later on when authenticating - the browser can now suggest and even autofill a passkey that's completely unusable by the relying party. I think it would be possible to alleviate this problem by expanding the `navigator.credentials.create()` API. In terms of ergonomics I'm not sure what would be best, but the gist of it would be adding something like `discardIfNotConfirmedAfter: duration` as a new optional parameter and, if provided, use it to hint that the credential isn't (yet) usable and should be removed from storage if a follow-up API isn't called. I could see something like `navigator.credentials.confirm(credential.rawId)` or an equivalent method added to the attestation that .create() returns) Loosely: ```ts const attestation = await navigator.credentials.create({ publicKey: { discardIfNotConfirmedAfter: 30000, // milliseconds challenge, // ... } }) const serverResponse = await storeCredentialWithRelyingParty(attestation) // Some site-specific procedure // If this is not called with 30s of the .create() promise resolving AND the // created credential is discoverable, then it could be discarded from storage attestation.confirm() ``` If the value is not provided, then the current behavior (of immediate storage) should be retained. I've seen a couple discussions around adding APIs to edit existing credentials (to e.g. allow an RP to indicate to the browser that a previously-registered credential is no longer usable or should be renamed) that are generally in this same space. Please view or discuss this issue at https://github.com/w3c/webauthn/issues/2067 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Saturday, 4 May 2024 00:02:41 UTC