網頁應用程式必須取得存取權杖,才能安全地呼叫 Google API。
Google Identity 服務 JavaScript 程式庫支援使用者登入和授權這兩種驗證方式,以取得用於 Google API 的存取權杖。這個程式庫只能用於瀏覽器,
驗證功能會建立使用者身分,通常稱為使用者註冊或登入。授權是授予或拒絕資料或資源存取權的程序。其中包括取得和管理使用者同意聲明、限制與範圍共用的資料或資源數量,以及擷取與 Google API 搭配使用的存取權杖。
以下指南說明授權和資料共用相關主題。
使用者授權的運作方式詳細說明各個使用者授權步驟,並附上使用者對話方塊範例。
如需驗證的相關說明,以及如何實作使用者註冊和登入作業,請參閱「使用 Google 帳戶登入」。
此程式庫不適合與 Node.js 等伺服器端 JavaScript 架構搭配使用,而是改用 Google 的 Node.js 用戶端程式庫。
異動情形
對使用者而言,Google Identity 服務程式庫比舊版 JavaScript 程式庫提供了許多改進空間,包括:
- 使用者登入驗證和取得存取權杖以呼叫 Google API 的授權,現在有兩個不同的使用者流程,分別用於登入和授權期間的同意聲明,且不同的使用者流程能夠清楚區分您的身分與應用程式的功能。
- 改善在使用者同意聲明期間分享資料及精細的控制選項。
- 以瀏覽器為基礎的彈出式視窗對話方塊可簡化作業,而且使用者不需要離開網站,就能執行以下動作:
- 向 Google 索取存取權杖
- 將授權碼傳送至後端平台。
針對開發人員,我們的重點是簡化複雜度、提高安全性,並盡可能簡化整合作業。其中幾個異動如下:
- 用於登入的使用者驗證,以及用於取得呼叫 Google API 存取權杖的授權,是兩組各自獨立的 JavaScript 物件組合和方法。這可降低實作驗證或授權作業所需的複雜度和細節。
- 單一 JavaScript 程式庫現在支援以下兩種做法:
- OAuth 2.0 隱含流程,用於取得在瀏覽器中使用的存取權杖
- OAuth 2.0 授權碼流程,也稱為離線存取,並啟動安全地將授權碼提供給您的後端平台,以便交換存取權杖及更新權杖。先前必須使用多個程式庫,並且經由直接呼叫 OAuth 2.0 端點才能使用這些流程。使用單一程式庫可減少整合所需的時間和人力,而不是為了專注於單一整合式介面,並學習多個程式庫和 OAuth 2.0 概念。
- 基於簡化和可讀性,我們移除透過 getter 樣式函式的間接方式,
- 處理授權回應時,您可以選擇是否使用 Promise 來完成要求,而不是使用系統為您做出該決策。
- 適用於 JavaScript 的 Google API 用戶端程式庫已完成以下變更:
- 系統不會再於幕後自動載入
gapi.auth2
模組及相關聯的物件和方法,並已替換為更明確的 Google Identity 服務程式庫物件和方法。 - 已移除自動重新整理過期的存取權杖,以提升使用者的安全和意識。存取權杖到期後,應用程式就必須處理 Google API 錯誤回應、要求,以及取得新的有效存取權杖。
- 為達成明確區分驗證和授權時刻,系統不再支援同時將使用者登入您的應用程式及其 Google 帳戶,同時系統不再支援核發存取權杖。先前,要求存取權杖也會將使用者登入 Google 帳戶,並傳回用於驗證使用者的 JWT ID 憑證憑證。
- 系統不會再於幕後自動載入
- 為了提升使用者安全性和隱私權,針對針對授權核發的每個使用者憑證,我們僅遵循最低權限原則,僅納入管理該憑證所需的存取權杖和資訊。