網頁授權

網路應用程式必須取得存取權杖,才能安全地呼叫 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 來完成要求,而不是由系統為您做出決定。
  • Google API JavaScript 用戶端程式庫已更新,包含下列變更:
    • 系統不再於幕後自動為您載入 gapi.auth2 模組和相關聯的物件與方法,而是以更明確的 Google Identity 服務程式庫物件和方法取代。
    • 為提升使用者安全和意識,系統已移除過期存取權杖的自動重新整理功能。存取權杖過期後,應用程式必須處理 Google API 錯誤回應、要求並取得新的有效存取權杖。
    • 為清楚區分驗證和授權時機,系統不再支援同時讓使用者登入應用程式和 Google 帳戶,並核發存取權杖。先前要求存取權杖時,系統也會讓使用者登入 Google 帳戶,並傳回 JWT ID 權杖憑證,供使用者驗證身分。
  • 為提升使用者安全和隱私權,根據授權發給每位使用者的憑證,只會包含存取權杖和管理權杖所需的資訊,以遵循最小權限原則。