用法)
Openship API認證指南Session Cookie、Bearer Token與PAT的3種實戰(zhàn)用法【免費下載鏈接】openshipSelf-hosted deployment platform項目地址: https://gitcode.com/GitHub_Trending/ope/openshipOpenship API 認證是每一位自托管部署平臺用戶繞不開的功課。Openship 是一個功能強大的自托管部署平臺Self-hosted deployment platform無論是瀏覽器里的管理面板、終端中的 CLI還是接入的 AI 助手每一次請求都要先回答一個問題你是誰本指南帶你快速吃透 Openship 的三種核心認證方式——Session Cookie、Bearer Token 與 PAT個人訪問令牌并附常見錯誤速查表看完即可上手。一、3種認證方式1張表看懂方式你要提供什么適用場景Session Cookie瀏覽器自動攜帶的 httpOnly Cookie管理面板Dashboard日常操作Bearer TokenAuthorization: Bearer opsh_pat_…請求頭CLI、腳本、服務(wù)器間調(diào)用MCP OAuthAI 客戶端自動獲取的 OAuth 2.1 令牌Claude、Cursor 等 AI 助手一次請求只會走其中一條路徑Openship 先檢查 Bearer 令牌沒有再看 Session Cookie兩者都沒有時才考慮桌面版的本地回環(huán)模式。二、Session Cookie瀏覽器登錄一次30天無憂登錄管理面板后Openship 會給你的瀏覽器發(fā)一個簽名的 httpOnly Session Cookie之后每次請求都由瀏覽器自動攜帶你完全無感。幾個值得了解的設(shè)計細節(jié)httpOnly 保護頁面上的 JavaScript 讀不到這個 Cookie即使惡意腳本混入頁面也無法竊取你的會話30 天有效期且每小時自動續(xù)期日常使用基本不會掉線Cookie 帶模式前綴自托管實例是openship.session_token云端模式則是openship-cloud.session_token兩種模式同機部署也互不干擾安全開關(guān)自動適配只有在 HTTPS 下才會附加 Secure 屬性本地 HTTP 實例不會出現(xiàn)登錄后被彈回登錄頁的怪圈。相關(guān)實現(xiàn)可參考 apps/api/src/lib/session-cookie.ts 與 apps/api/src/lib/auth.ts。三、Bearer TokenCLI 與腳本的萬能鑰匙沒有瀏覽器的環(huán)境服務(wù)器、CI、腳本就需要在請求頭里顯式攜帶令牌Authorization: Bearer opsh_pat_…這里有個新手常踩的安全坑瀏覽器來源的請求攜帶 Bearer 令牌會被直接拒絕401 BEARER_NOT_ALLOWED_FROM_BROWSER。這是刻意為之——從面板頁面里發(fā)出 Bearer 令牌往往是憑證被盜取后回放的信號所以大門直接關(guān)上而 CLI 不發(fā)Origin頭自然暢通無阻。令牌解析的統(tǒng)一入口見 apps/api/src/lib/bearer.ts完整鑒權(quán)流程見 apps/api/src/middleware/auth.ts。四、PAT 個人訪問令牌如何創(chuàng)建、使用與回收PATPersonal Access Token是 Bearer Token 的標準形態(tài)格式固定為opsh_pat_加 43 位隨機密鑰256 位熵。兩個關(guān)鍵安全特性要牢記??明文只顯示一次服務(wù)器只保存它的 SHA-256 哈希創(chuàng)建時看到的明文永遠無法再次查看。丟了只能吊銷重建令牌永遠以創(chuàng)建者身份行動除非你主動收窄它的權(quán)限。1?? 在面板中創(chuàng)建打開Settings → Personal Access Tokens填寫名稱并選擇權(quán)限即可生成令牌并當場復制。2?? 用 CLI 創(chuàng)建推薦腳本場景# 完整權(quán)限令牌必須顯式聲明 --full-access openship token create my-laptop --full-access # 只讀 90天過期的 CI 令牌 openship token create ci-readonly --read-only --expires 90 --full-access # 只綁定單個項目的部署機器人令牌 openship token create deploy-bot --grant project:proj_123:read,write兩種收窄手段按需選用手段效果典型用途--read-only拒絕一切寫操作POST/PUT/PATCH/DELETE監(jiān)控、看板、只讀審計--grant限制到指定資源令牌變成受限主體部署機器人、受限代理3?? 讓 CLI 記住令牌openship login --token opsh_pat_xxxx --context prod openship context use prod # 多實例間一鍵切換配置保存在~/.openship/config.json權(quán)限 0600令牌只會以 Bearer 頭發(fā)送絕不會被存成 Cookie。五、MCP OAuthAI 助手的專屬通道如果你要接入 Claude、Cursor 這類支持 MCP 的 AI 客戶端無需手動分發(fā) PATOpenship 本身就是一座標準的OAuth 2.1 授權(quán)服務(wù)器??蛻舳耸状握{(diào)用POST /api/mcp時會拿到401指引隨后自動完成注冊與 PKCE 授權(quán)流程最后在你的瀏覽器里彈出同意頁——在這里你可以勾選只讀或指定可訪問的項目/服務(wù)器范圍。?? 沒有經(jīng)過同意頁的 OAuth 令牌默認拒絕一切訪問不存在已認證但未授權(quán)的灰色地帶。已連接的客戶端可在Settings → MCP中查看并一鍵斷開斷開即吊銷全部令牌。六、桌面版零認證模式本地回環(huán)的便利桌面應(yīng)用運行在你自己的電腦上強制登錄純屬多余因此啟用零認證模式API 自動創(chuàng)建一個本地管理員把本機流量當作該用戶處理。它只有同時滿足三道閘門才生效僅限桌面應(yīng)用、認證模式為none、且請求來自內(nèi)核確認的127.0.0.1不信任可偽造的 Host 頭。自建服務(wù)器實例默認走local模式缺會話就是普通的401。七、常見錯誤碼速查表狀態(tài)碼含義怎么辦401 INVALID_TOKEN令牌錯誤、過期或已吊銷檢查令牌內(nèi)容必要時重建401 BEARER_NOT_ALLOWED_FROM_BROWSER瀏覽器來源攜帶了 Bearer 令牌從 CLI/服務(wù)器發(fā)送請求403 TOKEN_READ_ONLY只讀令牌嘗試了寫操作用有寫權(quán)限的令牌403 TOKEN_ORG_SCOPE令牌綁定的是另一個組織在令牌所屬組織內(nèi)使用503 AUTH_UNAVAILABLE會話校驗本身故障如數(shù)據(jù)庫異常稍后重試它絕不會悄悄降級為免認證八、安全最佳實踐清單 ?能收窄就收窄CI 用只讀令牌機器人用單項目 scope別讓令牌默認全權(quán)設(shè)過期時間--expires支持 1–365 天臨時任務(wù)用短命令牌明文只顯示一次生成后立即存入密碼管理器或環(huán)境變量定期清理openship token list查看使用情況閑置令牌及時revoke改密即踢人密碼重置會自動吊銷全部會話舊會話立刻失效。 相關(guān)資料認證模型完整文檔apps/web/content/docs/security/auth.mdxTokens API 參考apps/web/content/docs/api/tokens.mdxCLI 訪問與令牌管理apps/web/content/docs/cli/access.mdxPAT 生成與哈希實現(xiàn)apps/api/src/lib/pat.ts認證中間件主流程apps/api/src/middleware/auth.ts掌握 Session Cookie、Bearer Token 與 PAT 這三把鑰匙你就能從容駕馭 Openship 的整個 API 體系——瀏覽器里無感登錄、終端里一鍵部署、AI 助手中安全協(xié)作各得其所。【免費下載鏈接】openshipSelf-hosted deployment platform項目地址: https://gitcode.com/GitHub_Trending/ope/openship創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考