PublicKeyCredentialUserEntity中id的用途



调用navigator.credentials.create生成新凭据时,需要在PublicKeyCredentialCreationOptions中包含一个id为的[PublicKeyCredentialUserEntity][1]。规范中说这个id必须用于身份验证和授权决策,但当您调用navigator.credentials.get时,不会在PublicKeyCredentialRequestOptions中传递这个值。您只需要允许签署挑战的凭据的凭据ID。

如果我在后端已经有一个唯一的客户标识符来关联每个生成的凭据,并且可以使用它来获取正确的凭据ID,那么我对PublicKeyCredentialUserEntity的userId使用什么值真的重要吗?

如果我在后端已经有一个唯一的客户标识符来关联每个生成的凭据,并且可以使用它来获取正确的凭据ID,那么我对PublicKeyCredentialUserEntity的userId使用什么值真的重要吗?

对于2FA和Passwordless,您可能不需要太担心。正如您所说,您的数据库中已经通过凭据ID与用户记录建立了关系,用户必须通过用户名/电子邮件等进行身份识别。。。以完成2FA或无密码身份验证。

当您在注册过程中需要可发现的凭据时,user.id(也称为userHandle(变得最重要。这些类型的凭证在内部存储在具有(rpID, userHandle)密钥的映射中的验证器中。您必须小心这些,因为如果您允许用户再次注册相同的验证器并为user.id指定相同的值,验证器将覆盖现有的可发现凭据。

另一方面,可发现凭证允许";usernameless";身份验证。你从navigator.credentials.get()得到的userHandle的值将是你作为RP如何知道用户的ID是什么,而不是他们事先通过用户名/电子邮件等告诉你。。。因为它将与您传递给CCD_ 13的CCD_。

相关内容

  • 没有找到相关文章

最新更新