Brands & OAuth
Brand 讓 organization 可以在不同 workspace 與 Channel 重複使用同一組對外識別與 OAuth 設定。當發布體驗應代表特定業務或客戶品牌,而不是使用預設 workspace identity 時,再使用這項功能。

先理解三個連接關係
可以正常使用的品牌登入包含三個不同關係:
- Organization 擁有 Brand 與 OAuth provider。
- Workspace 被指派給這個 Brand。
- 該 workspace 裡的 Web Channel 綁定 OAuth provider。
只建立 Brand 不會自動改變 workspace 或 Channel。三個關係都完成後,仍要測試已發布的登入流程。
先準備 OAuth provider
目前 Brand 表單支援 Google OAuth。進入 Codeer 前,請先準備:
- 適用於正確環境的 Google OAuth client
- Client ID 與 Client Secret
- 該 Codeer deployment 指定的完整 authorized redirect URI
- 已核准的 scopes;一般 identity flow 通常需要
profile與email
不同環境的 redirect URI 不同。請向 deployment 管理員取得正確值,不要把 preview 或 local URL 複製到 production。Scopes 只申請對外體驗真正需要的範圍。
步驟 1:建立 Brand
打開 Organization Settings → Brands,點擊 新增,輸入 Brand 名稱與描述。

建立後打開 Brand 並上傳 logo。目前 logo 支援最大 1 MB 的 JPEG 或 PNG。
步驟 2:把 Brand 指派給 workspace
打開 Organization Settings → Workspaces,編輯目標 workspace,再選擇 Brand。Brand 詳情頁會列出目前正在使用它的 workspaces。
只有在多個 workspace 應共用同一套公開識別與登入管理責任時,才共用同一個 Brand。
步驟 3:加入 Google OAuth provider
打開 Brand,在 OAuth Providers 底下點擊 新增。
| 欄位 | 要填入什麼 |
|---|---|
Provider Type |
Google |
Display Name |
能分辨環境與用途的名稱,例如 Google OAuth for Production |
Client ID |
這個環境使用的 Google OAuth client ID |
Client Secret |
建立 provider 時必填 |
Scopes |
分別加入已核准的 scope,例如 profile 與 email |
編輯 provider 時,Client Secret 留空會保留既有 secret;只有輪替 credential 時才輸入新值。
步驟 4:把 provider 綁到 Web Channel
打開目標 workspace,選擇 Channels,打開 Web Channel,再從 OAuth 區塊加入 Brand 的 provider。同一個 Channel 不能綁定兩個相同 provider type。
管理 Brand 與 provider 需要 organization connection-management 權限;在 Channel 綁定或移除 provider 則需要 workspace resource-management 權限。
擴大存取前先測試
使用尚未登入的帳號檢查:
- 登入是從預期的已發布 Channel URL 開始
- Google 顯示正確的 app identity 與 scopes
- Callback 會回到正確 Channel
- 登入後使用者會進入預期的 workspace access 狀態
- 拒絕或失敗的登入不會開放受保護體驗
新增、輪替、解除綁定或刪除 OAuth provider 都屬於存取權變更。擴大分享 Channel 前,請先重新測試。
刪除可能破壞使用中的關係
刪除 OAuth provider 會移除它和 Client Channels 的關係;刪除 Brand 會讓使用中的 workspaces 解除指派。刪除任何一筆紀錄前,先處理或替換這些依賴關係。