跳到正文

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)。运行时计划详见功能页面。

一分钟看它跑起来

演示就是你第一天就能拿到的应用。无需注册即可打开:你的访客账号自带示例数据。

其他功能

群组和角色

带角色的群组(从查看者到所有者)、邀请和活动日志。

进一步了解群组和角色

计费

按成员计费的 Stripe 订阅,含免费版、试用期和宽限期。

进一步了解计费

实时同步

在一个标签页保存的更改,会显示在其他所有已打开的标签页中,无需刷新。

进一步了解实时同步

所有功能 Seed 与其他方案的对比