我正在考虑向我的网络应用程序添加对 WebAuthn / 密钥的支持,但事实上,您需要单独的注册和登录流程,并且仍然需要用户名,这对我来说几乎是不可能的。我真的想知道我是否在这里遗漏了一些东西,或者是否可以以某种方式使其对用户不可见。
例如,我目前提供通过电子邮件登录:用户只需输入他们的电子邮件地址,然后就会收到登录链接。无论他们是否是现有用户;如果是新的电子邮件地址,我可以简单地创建一个新帐户。对于用户来说,这是完全不可见的,他们不必在“注册”和“登录”按钮之间进行选择,他们不必尝试记住他们是否已经拥有帐户。只需输入您的电子邮件地址即可。
我还提供“使用 Apple 登录”,其流程相同:我在 Apple 的令牌中获取唯一的 Apple 用户 ID(主题),检查数据库中是否有具有此 ID 的用户,然后登录该用户。如果没有,我创建一个新用户,存储该 ID,然后登录。用户再也不必在“注册”和“登录”之间进行选择,他们根本不需要输入任何个人信息。
但使用 WebAuthn,您必须使用用户名创建或获取凭据。因此,我必须在网站上显示用户名输入字段,将其发送到服务器,服务器检查该用户是否存在,并基于该用户可以创建或获取凭据。但用户名很糟糕,一旦你有足够的用户,每个人都必须选择一个唯一的用户名,这总是令人沮丧的。因此,我可以要求提供电子邮件地址,但我想存储尽可能少的个人身份信息(是的,我提供通过电子邮件登录的方法,但这就是为什么我想提供 WebAuthn 作为替代选项)。
那么,如何简化这一过程呢?有没有办法绕过用户名要求,浏览器只需询问身份验证器是否有该网站的公钥,如果没有,则创建它。这样我就可以在网站上提供一个“使用密码登录”按钮,而无需询问用户名(或电子邮件地址)。
小智 3
虽然从技术上讲,您不需要可发现的 WebAuthn 凭据(密码)的用户名,但您仍然需要一个人类可识别的字符串,以便用户识别凭据。
例如,如果用户在一个站点有两个不同的帐户,您不希望他们在从密钥凭据列表中选择帐户时看到随机字符串,因为这对用户选择正确的凭据没有帮助。
| 归档时间: |
|
| 查看次数: |
1658 次 |
| 最近记录: |