CLI驗證

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:logout

auth: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_URLhttps://api.sofia-post.com另一個 API 執行個體(預備環境、本機)。
SOFIA_CLIENT_ID「Sofia CLI」用戶端auth:login 使用的另一個公開 OAuth 用戶端。

準備好發佈了嗎?前往貼文。

這個頁面對你有幫助嗎?