選擇使用者授權模型

本指南可協助您選擇使用 Google Identity 服務程式庫進行使用者授權,或實作自己的 JavaScript 程式庫。有助於您決定最適合網路應用程式的 OAuth 2.0 授權流程。

閱讀本指南前,請先熟悉「總覽」和「使用者授權運作方式」指南中說明的詞彙和概念。

GIS 程式庫會在使用者裝置上支援的瀏覽器中執行。不適用於 Node.js 等伺服器端 JavaScript 架構,請改用 Google 的 Node.js 用戶端程式庫。

本指南僅涵蓋授權和資料共用主題。這項服務不會審查使用者驗證,如需使用者註冊和登入相關資訊,請參閱「使用 Google 帳戶登入」和「從 Google 登入遷移」指南。

判斷 GIS 程式庫是否適合您

您必須選擇使用 Google 的程式庫,還是自行建立最符合需求的程式庫。功能總覽:

  • Google 的 Identity 服務 JavaScript 程式庫會實作:
    • 對話方塊式同意聲明流程可減少重新導向,讓使用者在授權過程中留在您的網站。
    • 安全性功能,例如跨網站偽造要求 (CRSF)。
    • 要求個別範圍並確認使用者同意的輔助方法。
    • 提供易於理解的錯誤處理方式和說明文件連結,供工程師在開發期間使用,以及供網站訪客日後參考。
  • 如果未採用 Identity Services 程式庫,您必須負責:
    • 使用 Google 的 OAuth 2.0 端點管理要求和回應,包括重新導向。
    • 提升使用者體驗。
    • 實作安全功能,驗證要求和回應,並防範 CSRF。
    • 確認使用者已同意授予任何要求的範圍。
    • 管理 OAuth 2.0 錯誤代碼、建立可供使用者閱讀的訊息,以及提供使用者說明連結。

總而言之,Google 提供 GIS 程式庫,協助您快速安全地實作 OAuth 2.0 用戶端,並提升使用者的授權體驗。

選擇授權流程

無論您決定使用 Google Identity 服務 JavaScript 程式庫或建立自己的程式庫,都必須選擇其中一種 OAuth 2.0 授權流程:隱含或授權碼。

這兩種流程都會產生存取權杖,可用於呼叫 Google API。

這兩種流程的主要差異如下:

  • 使用者動作次數
  • 應用程式是否會在使用者不在場時呼叫 Google API,
  • 如果需要後端平台來代管端點,並儲存個別使用者帳戶的每個使用者重新整理權杖,以及
  • 使用者安全性等級較高或較低。

比較流程及評估安全性需求時,請考量所選範圍會影響使用者安全性等級。舉例來說,以唯讀模式查看日曆邀請,風險可能比使用讀取和寫入範圍編輯雲端硬碟中的檔案低。

OAuth 2.0 流程比較

隱含流程 授權碼流程
需要使用者同意 包括更換過期權杖在內的所有權杖要求。 僅適用於第一個權杖要求。
使用者必須在場 否,支援離線使用。
使用者安全性 最少 大多數情況下,這項服務會進行用戶端驗證,並避免在瀏覽器中處理權杖時發生風險。
核發存取權杖
已核發更新權杖
必須使用支援的瀏覽器
用於呼叫 Google API 的存取權杖 只能從使用者瀏覽器中執行的網頁應用程式存取。 可來自後端平台執行的伺服器,或使用者瀏覽器執行的網頁應用程式。
需要後端平台 是,適用於端點代管和儲存空間。
需要安全儲存空間 是,用於儲存更新權杖。
需要代管授權碼端點 是,這樣才能接收 Google 傳送的授權碼。
存取權杖到期行為 使用者必須做出手勢 (例如按下按鈕或點選連結),才能要求及取得新的有效存取權杖。 在使用者提出初始要求後,您的平台會交換儲存的更新權杖,以取得呼叫 Google API 時所需的新有效存取權杖。