選擇使用者授權模型

本指南可協助您選擇使用 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 時所需的新有效存取權杖。