认证

每个业务应用都要先回答一个问题:现在操作的是谁。NocoBase 3 把这件事做成了应用模板自带的能力,你新建的应用从第一天起就有完整的登录、注册、会话和账号管理,不需要先花一周搭一套账号体系。

底层用的是 Better Auth,一个被广泛使用的开源认证框架。这意味着社交登录、企业 SSO、Magic Link、双因素这些能力都是现成的,接入它们是配置,不是重写。

开箱即用

你得到的意味着什么
登录、注册、忘记密码、重置密码页应用一启动就能让用户进来,页面是你的代码,随时可以改成自己的样子
邮箱或用户名登录用户不用记规则,两种都能用
基于 Cookie 的会话刷新页面不掉线,退出即失效,浏览器里不存任何 token
一行代码保护接口每个接口自己声明「要登录」,未登录的请求拿不到数据
账号禁用即时生效管理员禁用某人后,他正在用的会话和实时连接当场断开
默认管理员账号安装完就能登录进去开始配置

可以扩展成什么样

  • 接入第三方登录。 GitHub、Google 等主流平台直接配置;任何标准 OAuth 2.0 或 OIDC 服务,比如公司的 Keycloak、Azure AD,用通用 OAuth 接入。
  • 换掉密码。 Magic Link、邮箱验证码、Passkey、双因素,Better Auth 官方插件都能用。
  • 接公司自己的协议。 门户跳转带 ticket、内部签名这类非标准流程,可以写一个 Better Auth 插件接进来,会话、退出和禁用照常工作。
  • 在一个登录页上放多种方式。 账号密码、企业账号、第三方按钮可以同时出现。
  • 把用户和业务连起来。 接口里直接拿到当前用户,订单归属、操作记录都以它为准。

它和权限的关系

认证回答「你是谁」,权限回答「你能做什么」。两者分开,各自独立配置:

  • 一个接口先要求登录,再检查权限。没登录返回 401,登录了但没资格返回 403。
  • 角色、菜单可见性、数据范围都在权限里配置。
  • 用户列表、分配角色在设置中心的用户管理里操作。

和 Agent 一起开发

NocoBase 3 的应用开发以 Agent 为主要实现者。认证插件随包提供一份 Skill,Agent 读到它就知道接口怎么保护、页面在哪改、新认证方式该用哪种机制、需要补哪些表。你要做的是:

  • 用业务语言描述需求:谁要登录、从哪进来、登录后去哪;
  • 接第三方时把协议、回调地址、测试账号一次给全;
  • 拍板账号策略:首次登录要不要自动建账号、能不能按邮箱关联已有账号;
  • 审核它的方案,验收它的测试结果。

具体怎么说、怎么审,见使用 Authentication Skill。

安全上你不用操心的和需要操心的

不用操心的:密码用业界标准方式哈希;会话由服务端签发和校验;禁用账号立即生效;登录接口有限流;密码重置链接一次有效。

需要你决定的:

  • 生产环境的密钥 secrets.keys(或 SECRETS_KEYS)和公网地址,多实例部署要配共享缓存;
  • 是否开放自助注册;
  • 第三方账号首次登录是否自动建号,是否允许按邮箱合并。按邮箱合并方便,但有被冒用的风险,所以只有你明确要求时 Agent 才会这么做。

下一步