CaelLabID
CaelLabID 是虛舟實驗室(CaelLab)推出的統一身份認證系統,基於 OAuth 2.0 標準協議構建,為第三方應用提供安全的用戶身份驗證與授權服務。[1]該系統允許應用接入 CaelLabID 的用戶體系,用戶可通過 CaelLabID 帳戶登錄第三方應用,無需為每個應用單獨註冊。[1]
概述
CaelLabID 是虛舟實驗室的統一身份認證系統,遵循 OAuth 2.0 標準協議中的 Authorization Code Grant(授權碼模式)流程。[1]該系統旨在為開發者提供標準化的身份認證接入方案,使第三方應用能夠安全地接入 CaelLabID 用戶體系,獲取用戶授權並調用用戶基本信息。[1]
系統在服務端不存儲用戶明文密碼,而是採用 SHA-256 哈希算法進行存儲,以增強安全性。[1]
核心功能
CaelLabID 提供以下核心功能:
技術規格
支持的 Scope
CaelLabID 當前僅開放 `openid` scope,用於獲取用戶的基本身份標識。[1] `profile`(用戶名、顯示名、頭像、簡介)和 `email`(郵箱地址及驗證狀態) scope 計劃在後續版本中逐步開放。[1]
令牌有效期
系統對各類型令牌設定了以下有效期:[1]
- 授權碼(Authorization Code):10 分鐘
- Access Token:1 小時
OAuth 2.0 接入流程
CaelLabID 的 OAuth 2.0 接入遵循標準的授權碼模式,整體流程如下:[2]
- 引導用戶授權:第三方應用將用戶瀏覽器重定向至 CaelLabID 的授權端點(`/oauth/authorize`),用戶登錄並確認授權。[2]
- 處理回調:用戶授權後,CaelLabID 通過 302 重定向將授權碼(code)返回至應用指定的回調地址。[2]
- 換取令牌:應用服務端使用授權碼,通過向 `/oauth/token` 端點發起 POST 請求,換取 Access Token 和 Refresh Token。[2]
授權端點
授權 URL 構造方式如下:[2]
https://id.caellab.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_CALLBACK_URL&scope=openid&state=RANDOM_STRING
主要請求參數包括:[2]
- `response_type`:固定值 `code`
- `client_id`:應用註冊時獲得的 Client ID
- `redirect_uri`:回調地址,須與註冊時填寫的一致
- `scope`:權限範圍,當前僅支持 `openid`
- `state`:推薦使用的隨機字符串,用於防止 CSRF 攻擊
令牌端點
換取 Access Token 需向 `/oauth/token` 端點發起 POST 請求,支持以下兩種認證方式:[2]
- POST body 傳參:在請求體中傳遞 `client_id` 和 `client_secret`
- HTTP Basic Auth:在 Authorization 頭中使用 Base64 編碼的 `client_id:client_secret`
成功響應返回 JSON 格式數據,包含 `access_token`、`token_type`、`expires_in`、`refresh_token` 等欄位。[2]