如何通过客户端JavaScript检测用户是否已通过WebAuthn完成身份认证
问题答案
核心结论
你提到的两类检测需求均无法通过运行在站点中的第三方JavaScript实现,原因如下:
- WebAuthn标准采用隐私优先的设计思路,没有对外暴露任何全局级别的
已完成WebAuthn认证状态标记,没有提供任何公开API可以直接读取该状态,避免恶意脚本追踪用户的身份认证行为。 - WebAuthn的认证请求、验证结果仅对发起该请求的同域业务脚本可见,第三方脚本运行在独立的执行上下文,无权读取其他脚本调用WebAuthn API的过程和返回结果。
- 站点完成WebAuthn认证后的状态只会存储在业务侧自定义的位置(比如业务专属的Cookie、LocalStorage字段、后端会话记录),第三方脚本没有权限读取这些非公开的业务状态字段。
- 站点是否使用WebAuthn作为多因素认证属于业务内部实现逻辑,没有统一的对外可检测标识,第三方脚本无法区分普通登录流程和WebAuthn认证流程。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

