# Discourse 设置 passkey 登录

**URL:** <https://www.isharkfly.com/t/discourse-passkey/15792>\
**Category:** Discourse\
**Tags:** discourse\
**Created:** [May 24, 2024, 6:21pm UTC](https://www.isharkfly.com/t/discourse-passkey/15792 "2024-05-24T18:21:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [May 24, 2024, 6:21pm UTC](https://www.isharkfly.com/t/discourse-passkey/15792/1 "2024-05-24T18:21:33Z")

</div>

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

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

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

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

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

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

## Discourse passkey

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

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

## 设置 passkey

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

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

 ![2024-05-24_14-17-52](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/a/a381135f9a3c131e197b4c37e7e326b303fa93e1.png)

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

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

 ![2024-05-24_14-19-17](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/2/26c2c930cc515201b1ee12cde53df46a16d1723e.png)

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

 ![2024-05-24_14-19-46](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/f/ff1c10388665eee958ddf707f5a79ff687d37798.png)

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

 ![IMG_5493](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/a/a7285d8042782a9833b6549a350786038cebbbae.jpeg)

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

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

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

 ![2024-05-24_14-25-29](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/9/96d1bdbcb38fc0ce7486389c976889dabcc68145.png)

单击 OK 继续。

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

 ![2024-05-24_14-26-46](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/a/a1b42a4450474e0948c6fa753b1ca3139f380f38.png)

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

然后单击继续。

## 登录

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

 ![2024-05-24_14-28-55](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/a/a56f74abd442f0836e4244777695d83c737abac2.png)

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

 ![2024-05-24_14-29-20](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/8/88a125231898d621f29c7b224f46ef42053e0277.png)

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

 ![](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/4/429d76299d5365297d8ca1c64baff7b8b32ffa9a.jpeg)  
按照手机上面的提示，选择要登录的账号，如果在某一个网站上，你有多个账号的话，会提示你选择那个账号进行登录。

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

## 总结

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

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

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

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

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

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

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

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

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