首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个登录表单可以用WebAuthn吗?

这个登录表单可以用WebAuthn吗?
EN

Stack Overflow用户
提问于 2022-07-07 00:57:18
回答 1查看 118关注 0票数 -1

我正在计划重写我的网站,我想让它,我可以登录无密码,只要Windows,TouchID,或FaceID使用WebAuthn。所有的例子网上有一个完整的弹出式情况,但我希望它完成就像我的模型。我还希望我的网站检测默认的生物特征,并让生物特征图标更改为表示默认的图标,例如,FaceID的脸图标。这个网站将使用python-烧瓶、ReactJS、MySQL、CSS和HTML完成.

EN

回答 1

Stack Overflow用户

发布于 2022-07-11 15:11:34

这里有几个不同的地方-

Pop-up/Modal

我们先从这个开始。不幸的是,在WebAuthn仪式上出现的弹出窗口是浏览器实现的一部分。每次调用get()/create()方法时,都会调用弹出窗口。谷歌/苹果公司在他们的密码实现中做了一些工作,这看起来更像是一个“自动填充”经验,但是你仍然需要使用他们的弹出窗口。

默认为Windows等.

首先,我建议您不应该将用户限制为只使用平台认证器。安全密钥在WebAuthn中仍然起着很大的作用,对于跨设备登录非常有效。依赖平台验证器可以将用户限制在他们最初注册的设备上,或者限制设备上没有生物传感器的用户。

这样,您就可以使用PublicKeyCreationOptions显式地调用只使用平台身份验证器。在属性authenticatorSelection中有一个字段authenticatorAttachment。如果将此字段设置为" platform“,则将调用平台身份验证器(如果可用的话)。

下面是依赖方发送的请求的示例(请注意位于底部的属性authenticatorSelection ):

代码语言:javascript
运行
复制
{
  "publicKey": {
    "rp": {
    "name": "Example Inc",
    "id": "example.com/"
  },
  "user": {
    "name": "user",
    "displayName": "user",
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  },
  "challenge": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "pubKeyCredParams": [***],
  "excludeCredentials": [***],
  "authenticatorSelection": {
    "authenticatorAttachment": "platform"
    "residentKey": "preferred",
    "userVerification": "preferred"
  },
  "attestation": "direct",
  "extensions": {}
  }
}

检测默认生物识别

我有一个反应例子这里。在这种方法中需要注意的是:

  • 有更优雅和准确的方法来确定用户在哪个平台上。这个片段大部分时间都能工作,但是有很多假设只是基于检测到的操作系统。
  • 没有包括图标,我建议在枚举中添加一个imgSrc字段,其中包括指向源图像的链接

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72891240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档