用 OAuth 授權與令牌儲存安全存取 Google API
學習如何構建能與 Google API 整合的智能生產力應用(例如 AI Agent),運用 Logto Secret Vault 保障存取與刷新令牌的安全,支援增量授權,並無縫結合 OIDC/OAuth 2.0。
在當今互聯的數碼時代,能輕鬆整合第三方服務的應用能帶來卓越的用戶體驗。無論你在開發一款生產力套件、AI 助手還是文件協作平台,安全地存取與使用如 Google、GitHub、Facebook 等 API,都能令你的應用由「好」昇華到「不可或缺」。
今天,我們將介紹 Logto 的 Secret Vault 和 Social Connector 如何協助你打造可與 Google API 整合的智能生產力應用。我們會示範安全令牌儲存、AI 存取令牌檢索、增量授權以及流暢的第三方服務整合。
挑戰:打造智能日曆助手
想像你在開發一款「智能日曆助手」,這個應用能夠聰明地幫用戶管理行程。你的應用需要能夠:
- 基本認證:用戶以 Google 帳戶登入應用。
- 個人檔案管理:顯示用戶的基本個人資料。
- 日曆整合:讀取日曆事件,提供行程分析。
- 進階功能:建立日曆事件、經 Gmail 發送會議邀請,以及管理 Google Drive 文件(僅限用戶明確要求進階功能時)。
難題是?你需要在不同情況下獲取 Google API 的不同權限,而且必須以安全方式儲存令牌,方便持續執行 API 操作,無需經常提示用戶重新認證。
解決方案:Logto 的 Secret Vault 增量授權
Logto 的方案優雅地解決以上需求:
- 最小初始權限範圍:登入時只申請重要權限。
- 增量授權:按需為進階功能申請額外權限。
- 安全令牌儲存:在加密的 Secret Vault 儲存與管理 access/refresh tokens。
- 自動令牌刷新:透明處理令牌過期。
一起看看實現步驟。
步驟 1:設置 Google 連接器並設定基本權限
首先,在 Logto Console 建立並設定 Google 連接器。初始化時,加入最小必要權限範圍:
請參閱 Google API Library 及 OAuth 2.0 權限文件 了解不同權限範圍。
主要設定步驟:
- 在 Google Cloud Console 建立 Google OAuth 客戶端。勾選應用所需全部權限。
- 於 Logto Google 連接器 輸入客戶端認證資料,並於
Scopes
欄填上上述最小權限。 - 在連接器設定啟用 持久 API 存取的令牌儲存。
- 將 授權提示(Prompts) 設為包含
consent
,同時啟用 離線存取(Offline Access),確保會發出 refresh token。
詳細教學請參閱 Logto 官方 Google 連接器設定。
完成這套可讓用戶登入並授權你的應用讀取日曆事件,適用於日常行程分析功能。
步驟 2:實現登入流程
前往 Logto > 登入體驗 > 註冊與登入,於社交登入部分新增 Google 連接器,供用戶以 Google 認證。
當用戶以 Google 登入時,Logto 會自動:
- 按設定權限認證用戶。
- 安全地在 Secret Vault 儲存 access 及 refresh tokens。
- 返回用戶個人資料給你的應用。
tokens 現已安全儲存並綁定至該 Google 用戶身份,隨時可用於 API 調用。
步驟 3:使用已儲存令牌存取 Google APIs
讀取用戶日曆事件時,只需檢索已儲存的 access token 並呼叫 Google Calendar API:
Logto 會自動處理 token 刷新。如果 access token 過期但 refresh token 有效,Logto 會自動獲取新 access token。
步驟 4:為進階功能進行增量授權
當用戶需要進階功能(如建立日曆事件或 Gmail 存取)時,利用 Logto 的 Social Verification API 申請額外權限:
用戶授權後,處理回調並更新已儲存令牌:
此時你的應用已可用更新後帶有新權限範圍的令牌新增日曆事件及發送郵件。
步驟 5:管理令牌狀態
Logto Console 提供完整的令牌管理功能。到 用戶管理 > 選擇用戶 > 社交連接 檢視:
- 令牌狀態:活躍、已過期、未啟用或不適用
- 令牌中繼數據:建立時間、最後更新、到期時間、授權範圍
- 連接管理:查看自 Google 同步的個人資料
這些資訊有助管理員掌握用戶連接狀態,或排查與令牌相關的問題。
不止 Google:全方位第三方整合
你可以將智能日曆助手擴展到更多服務。熱門的社交連接器包括 Google 用於認證、日曆與 Gmail,同時 GitHub 適合程式庫和議題管理、Facebook 可支援社交及營銷洞見。未來將會有更多內建連接器支援令牌存儲。
如需自訂整合,Logto 支援標準 OIDC 或 OAuth 2.0 連結,讓你幾乎能串接任何組織所用第三方服務。
安全性與最佳實踐
Logto Secret Vault 採用企業級安全設計:
- 每條秘密皆加密:每組令牌用獨立資料加密金鑰(DEK)
- 金鑰包裹技術:DEK 以金鑰加密金鑰(KEK)加密
- 最小外露:只有 API 調用時才會解密令牌
- 自動清理:用戶解除帳戶連結或移除連接器時即刪除令牌
小結
Logto 是專為開發者打造的認證平台,協助你安全地整合第三方服務。
有了 Logto 的增量授權和安全令牌儲存,你的智能日曆助手能夠在功能與安全間無縫取得平衡。用戶享受無縫單一登入,只需授權基礎功能權限。當探索進階功能時,動態按需權限請求可自然解鎖 premium 體驗。
通過安全儲存的令牌持續存取 API,無需經常中斷用戶重新登入,實現流暢專業的操作體驗。這一切皆以安全為設計初衷,配合企業級加密守護用戶憑證並維繫信任。
準備好整合第三方 API?來看看起步步驟:
- 設置 Logto:建立你的 Logto 租戶並配置首個社交連接器
- 啟用令牌儲存:於連接器設定開啟「持久 API 存取的令牌儲存」
- 實現增量授權:用 Social Verification API 支援隨需請求額外權限
- 拓展應用架構:結合更多服務供應商,運用 Logto 完整連接生態系
未來的應用開發趨向無縫的服務整合。有了 Logto 的 Secret Vault 及各類連接器,讓你輕鬆打造真正貼近你用戶每日所需的互聯應用。
想知道更多?請參考我們的整合教學,立即開展你的智能互聯應用開發吧。