CLI
身份验证
通过浏览器或个人 API 密钥登录,并了解当同一台机器上两者都已设置时,究竟哪一个会优先生效,从而避免弄混和出错。
CLI 有两种登录方式:通过浏览器,或使用个人 API 密钥。在自己的电脑上用浏览器最简单;密钥更适合 CI 和服务器。
通过浏览器登录
auth:login 会在浏览器中打开 Sofia。你批准访问后,CLI 在本地地址(http://127.0.0.1:<port>/callback)接收授权。这是带 PKCE 的 OAuth2 授权码流程,无需复制密钥。
sofia auth:login--scopes "<s1 s2>":要申请的权限范围。默认是所有资源权限加上offline_access。--no-browser:只打印地址而不打开,适用于没有浏览器的机器。
sofia auth:login --scopes "posts:read posts:write offline_access"
sofia auth:login --no-browser凭据的保存位置
auth:login 之后,CLI 会把会话保存在 ~/.sofia/credentials.json(目录权限 0700,文件权限 0600)。过期的令牌会自动刷新,文件随之重写。
{
"apiUrl": "https://api.sofia-post.com",
"clientId": "…",
"accessToken": "…",
"refreshToken": "…",
"expiresAt": "…",
"scope": "…"
}检查与退出登录
auth:status 显示 CLI 当前代表的账号。auth:logout 会删除凭据文件。
sofia auth:status
sofia auth:logoutauth:logout 只会删除这台机器上的凭据:Sofia API 没有撤销端点,因此在你于 Sofia 的 设置 › 已连接的应用 中撤销之前,该访问权限仍然有效。
使用个人 API 密钥
在 Sofia 的 设置 › API › 个人访问 中创建密钥,然后导出为 SOFIA_API_KEY。无需 auth:login,适合 CI 和服务器。关于密钥的更多内容见身份验证。
export SOFIA_API_KEY="sk_live_…"
sofia establishments:list优先级
浏览器登录得到的凭据优先于 SOFIA_API_KEY。如果要在已登录的机器上使用密钥,请先运行 sofia auth:logout。
环境变量
| 变量 | 默认值 | 作用 |
|---|---|---|
SOFIA_API_KEY | — | 个人 API 密钥(设置 › API › 个人访问)。 |
SOFIA_API_URL | https://api.sofia-post.com | 另一个 API 实例(预发布、本地)。 |
SOFIA_CLIENT_ID | “Sofia CLI”客户端 | auth:login 使用的另一个公开 OAuth 客户端。 |
准备好发布了吗?前往帖子。
这个页面对你有帮助吗?