openpgp web ui base on openpgp.js, ui will like KGpg
为什么使用 PGP 进行认证, 因为邮箱认证依赖于第三方, 而第三方的邮箱的免费用量不足以支撑认证邮件的发送, 还有一个是第三方会泄露你的踪迹,
而采用 PGP 签名认证就只有网站和你的好友知道你访问了网站, 当然了还有浏览器
使用 PGP 登录的示例: https://simple-pgpauth-server.herokuapp.com
web+pgpauth
protocol 介绍示例:
web+pgpauth:login?auth=http://127.0.0.1:3001/api/auth&mid=magic_id&fingerprint=eeeeeeeeeeeeee
字段详解
块 | 详解 |
---|---|
web+pgpauth: |
注册的自定义协议名 |
login |
路径, 目前只有该路径 |
auth=http://127.0.0.1:3001/api/auth |
加密后的签名内容将要发往的网站地址 |
mid=magic_id |
登录请求的唯一 id |
fingerprint=eeeeeeeeeeeeee |
应用公钥指纹, 如果找不到对应指纹的应用公钥的话会提示用户导入应用公钥 |
加密后的签名内容
步骤详解{"mid":"pgpauth中 的mid字段","auth":"pgpauth中 的 auth 字段","fingerprint":"登录帐号的公钥指纹"}
(服务端根据 fingerprint
查找用户公钥, 所以如果服务端没有用户公钥的话就会认证失败)发送签名内容
将上一步得到的加密文本作为 content
字段通过 POST
表单的方式发到 auth
指定的链接中假设服务端登录页面是: http://example.com/login
1
则认证失败, 返回用户未被邀请的错误cookie
或者返回 token
给用户保存使用