Discourse 设置 passkey 登录

苹果在2022年的WWDC大会上宣布了在iOS设备上可以使用一种名叫Passkey的无密码登录,苹果把它翻译成“通行密钥”,并随后又在macOS上支持它。

谷歌和微软随后也宣布在Android和Windows系统上支持通行密钥。

密码登录,要求用户设置一个高强度的密码,因为强度低,容易被破解,但强度高,又记不住。很多网站要求注册时密码必须包含大小写字母、数字和特殊符号,纯属给用户添堵。

而用Passkey登录,则无需输入密码,只需要点一下“一键登录”,就可以直接完成登录。

这种无密码登录到底是什么原理,为什么这么神奇?

其实Passkey的核心技术非常简单粗暴,就是用非对称密钥通过签名完成认证。

Discourse passkey

Discourse 已经能够完全支持 passkey 的登录,并且这一登录方式作为默认选项已经放在了用户登录选项中。

在注册的时候,还是可以按照正常注册。设置部分是在注册并且激活成功后。

设置 passkey

设置 passkey 的部分是在用户的安全属性哪里。

进入你的用户选项,然后选择添加 Passkey。

如果使用的是 Windows 计算机的话,上面可以选择使用你的计算机 PIN。

我们这里选择使用其他设备,因为想使用手机的照相功能。

在随后的界面中,单击下一步继续。

随后,屏幕上会出现一个 QR 二维码,使用手机的照相机功能进行扫描。

微信的 QR 条码扫描功能无效。

手机上会显示是否保存当前网站的 Passkey,同时是 iPhone 的话还需要校验你的 FaceID。

当单击同意保存后,网站界面将会显示 Passkey 已保存。

单击 OK 继续。

Discourse 会提示要求为使用的 Passkey 创建一个名称。

可以使用默认名称,在这里,我们用名称 iPhone 来表示这个 Passkey 被 iPhone 使用。

然后单击继续。

登录

在登录的时候选择使用 Passkey 登录选项。

然后单击下一步获取 QR 二维码。

使用手机上面的照相功能,在照相机的下方,会显示是否使用 PassKey 进行登录。


按照手机上面的提示,选择要登录的账号,如果在某一个网站上,你有多个账号的话,会提示你选择那个账号进行登录。

然后下一步就需要校验你的 FaceId,就可以完成登录了。

总结

有点像微信的扫描登录的意思。

在微信扫描登录之前需要的是绑定微信号,然后进行扫码登录。

在这里需要的是先注册 Passkey 然后进行扫码登录。

从用户体验上来说和微信登录流程差不多,但微信扫码登录扫的是微信服务器提供的 QR 代码,然后通过微信回调的方式完成用户验证。

换句话说,只要用户微信是登录的,完成扫码就可以登录。

Passkey 的登录方式是哪怕用户扫码成功了,手机上面还是要进行 FaceId 验证,如果 FaceID 验证不通过,还是没有办法登录网站,感觉安全性更高。

另外,PassKey 是通过公钥私钥对的方式进行的,微信登录是通过手机访问微信 QR 方式登录,不存在生物识别二次校验。

从使用场景来说,Passkey 更加广泛,不依赖微信公众号的开发,网站不需要申请微信公众号的接口访问权限,加密方式对比微信来说也更加灵活。

但对用户体验来说,都差不太多。