“使用密钥登录”按钮
使用通行密钥后,点按几下和设备锁屏,即可让用户无需登录即可使用表单。由于通行密钥包含用户的用户名和显示名称,因此浏览器或操作系统可以显示帐号选择器,供用户选择用于登录的帐号,然后解锁屏幕进行验证。网站或应用可以通过放置“使用密钥登录”按钮,让用户启动流程。
如果 RP 确定只有密钥用户,建议提供这种用户体验。如果 RP 上有用户没有通行密钥,他们仍需要让用户使用其他方式登录,例如使用表单登录用户名和密码。对于此类情况,我们建议在表单字段中提供自动填充自动填充建议。
表单字段中的自动填充密钥建议
您可以通过简单的“使用密钥登录”按钮提供基于密钥的身份验证机制。不过,如果有一些用户设有密码,RP 还必须为这些用户提供登录表单。为了支持这两种类型的用户,可以改用用户名和密码表单,以便用户看到针对密码和密钥(如有)的自动填充建议。这样一来,用户不必记住是否使用密钥或密码。
通过此设置,用户只要将光标放到某个表单字段,就能看到帐号选择器。选择帐号时,如果帐号是基于密码的,则系统会自动填写用户名和密码字段。如果帐号基于密钥,则会立即要求用户解锁设备并尝试让他们登录。
如果 RP 从基于密码的身份验证或多重身份验证转换为使用通行密钥的无密码身份验证,这种用户体验就很适合。
了解如何打造这种用户体验:
重新身份验证
如果用户已经登录,但由于会话已过期或用户即将执行敏感操作(例如添加送货地址或进行购买)而需要额外身份验证,因此重新身份验证是一种常见的用户体验。
在基于密码的身份验证中,系统会要求用户输入密码以重新进行身份验证,但使用密钥时,RP 可以直接请求解锁设备以重新进行身份验证。
这种快速的身份验证可确保同一用户仍然位于设备前,因此更安全地继续操作。
了解如何打造这种用户体验:
- 构建您的首个 WebAuthn 应用 (codelab)
使用手机登录
同一密钥的不同设备之间会同步密钥。例如,如果用户在 Android 上创建了密钥,只要用户登录同一 Google 帐号,就可以在所有 Android 设备上使用该密钥。但是,即使您使用的是 Chrome 等同一浏览器,也无法在 iOS、macOS 或 Windows 上使用相同的密钥。
只要手机在笔记本电脑附近,并且用户在手机上批准了登录,用户就可以通过扫描二维码在手机上使用通行密钥登录其他设备。这适用于不同的操作系统和浏览器。
假设用户有一台 Android 设备,并通过 Chrome 在网站上创建了一个通行密钥。系统会保存密钥并在 Android 设备之间同步,但不会在其他生态系统中同步。当用户尝试在 macOS 13 Safari 上登录同一网站时,在 Mac 上不会保存任何密钥。用户仍然可以通过选择使用另一设备上的密钥来使用 Android 设备进行登录。Safari 显示一个二维码,用户可以使用 Android 手机扫描该二维码,选择密钥,然后使用屏幕锁定进行验证。在 Mac 上,一次性密钥签名会被传输回 Safari,然后网站会使用该用户登录。这两个设备使用蓝牙验证彼此靠近。
这种跨设备、跨操作系统的通行密钥身份验证机制已按照 FIDO 进行了标准化,可在 Chrome 和 Safari 中与其他浏览器保持一致。您无需执行任何额外操作即可启用此用户体验。当开发者遵循上述“使用通行密钥”按钮方法或上文所述的通行密钥自动填充方法时,系统会自动启用此模式。