nb env auth
对已保存的 NocoBase env 重新执行认证,或更新它保存的认证信息。省略环境名称时使用当前 env。
nb env auth 支持三种认证方式:basic、token、oauth。如果不传 --auth-type,CLI 会优先根据你传入的认证参数判断;仍然无法判断时,会使用 env 中已保存的认证方式。
用法
参数
兼容参数
说明
几种认证方式的处理逻辑如下:
basic:使用用户名和密码登录 NocoBase,保存登录后返回的 access token 和用户名token:把--access-token传入的 API key 或 access token 保存到 env 中oauth:进入浏览器认证流程,认证完成后保存 access token
如果当前终端可以交互,省略 --auth-type、--username、--password 或 --access-token 时,CLI 会按需提示你输入。非交互模式下使用 basic 认证时,必须同时传入 --username 和 --password。
oauth 认证会优先尝试 Device Authorization Grant。当 OAuth 服务端支持这个流程时,命令会在终端输出验证 URL 和用户代码,并轮询等待浏览器端完成授权。这个模式不需要本地回调监听,适合远程服务器或无界面环境。
如果 OAuth 服务端没有暴露 device authorization endpoint,命令会回退到 PKCE loopback 流程:启动本地回调服务,打开浏览器授权,交换 token,并保存到配置文件。
认证完成后,CLI 会自动执行一次 nb env update <name>,让 env 的状态重新同步。
限制
[name]和--env不能同时传入不同的环境名称--access-token不能和--username或--password一起使用--auth-type oauth不能和--access-token、--username或--password一起使用--auth-type token不能和--username或--password一起使用--auth-type basic不能和--access-token一起使用--access-token、--username、--password传入后不能为空
示例
使用 device authorization 时,打开命令输出的 URL,并在浏览器中输入终端显示的 code。

