SaaS 通行密钥与登录认证,无需第三方认证服务
最后更新于
Seed 支持通行密钥、邮箱登录链接、Google 和 GitHub 登录,全部由它自己的 API 在你的服务器上校验,不依赖第三方认证服务。密码、通行密钥和登录链接部署后即可使用,不按用户收费;Google 和 GitHub 登录各需在 env 文件中填写两个密钥。
- 密码通过 Web Crypto 用 PBKDF2-SHA-256 哈希,默认 600,000 轮
- 签名的会话 Cookie,每次登录事件都有审计记录
- 个人 API 令牌,只以带密钥的哈希形式存储
- 通行密钥:只存储公钥,每次登录的挑战只能使用一次
- 魔法链接:一个链接即可登录或注册,只能使用一次,15 分钟内有效,并且只以哈希形式存储
- 访客账号(匿名登录):访客一键开始,无需任何登录方式,之后可以在同一个账号上添加邮箱和密码、Google、GitHub 或通行密钥
- 按登录名统计所有网络地址上的密码错误次数,超过后短暂锁定
每次登录都由 API 自己校验,并返回一个签名的会话 Cookie。通行密钥使用浏览器自带的 WebAuthn:服务器只保存其公钥,每个登录挑战只能使用一次。登录链接可用于登录或注册,只能使用一次,有效期 15 分钟,并且只以哈希形式存储。
身份验证器应用可以开启双重验证。个人资料页列出了进入账号的每种方式和每台已登录的设备;更改登录方式时需要验证身份,并会发送邮件通知。访客也可以先用访客账号开始,之后再添加登录方式。

我需要第三方认证服务吗?
不需要。Seed 自己的 API 在你的服务器上校验密码、通行密钥、登录链接以及 Google 和 GitHub 返回的结果,所以不会按用户计费。
Seed 支持通行密钥吗?
是的。用户可以在个人资料页添加通行密钥并用它登录;服务器只保存其公钥,每个登录挑战只能使用一次。
Seed 支持双重验证(2FA)吗?
是的。身份验证器应用会在登录时要求输入一次性验证码,使用 Google 或 GitHub 登录后也一样。
可以不启用 Google 或 GitHub 登录吗?
可以。每种方式在 env 文件中设置好它的两个变量之前都处于关闭状态,不设置就等于关闭。
Seed 能在 Node 或 Bun 上运行吗?
暂不支持。Seed 目前运行在 Deno 上,让它能在 Deno、Node 和 Bun 上运行的迁移工作正在进行中(#623)。运行时计划详见功能页面。