簡介
使用者可以透過「使用 Google 帳戶登入」功能,快速安全地登入您的應用程式或網站。正確導入這項功能不僅能簡化使用者註冊程序,還能提升應用程式的安全性。本文概述在網頁、Android 和 iOS 平台整合「使用 Google 帳戶登入」的最佳做法。本文件僅著重於驗證作業。授權不在本文的討論範圍內。
整合里程碑檢查清單
這份檢查清單提供高階藍圖,引導您完成「使用 Google 帳戶登入」整合程序。本指南分為幾個主要階段,從初始設定到正式推出都有涵蓋。你可以使用這份清單追蹤進度,並點選連結前往各里程碑的詳細指南。
第 0 階段:開始使用 (選用)
透過實用的逐步開發人員程式碼研究室,迅速展開整合作業。
網頁:完成「一鍵登入」和「使用 Google 帳戶登入按鈕」Codelab,建構基本的網頁整合功能。
Android:完成 Android 程式碼研究室,瞭解 Android 認證管理工具的基本知識。
iOS:完成 iOS Codelab,瞭解 iOS SDK 的簡介。
階段 1:Google Cloud 專案和品牌設定
確保專案從一開始就設定妥當,能獲得出色成效。
填寫OAuth 同意畫面設定,提供所有必要的品牌和支援資訊。
為每個平台 (網頁、Android、iOS) 建立正確的 OAuth 用戶端 ID 類型。
第 2 階段:核心開發:前端和後端
建構安全無虞的伺服器邏輯,以及平台專屬的使用者體驗。
在前端開發中:
參閱並套用一般使用者體驗 (UX) 最佳做法,盡可能提高使用者採用率和信任度。
網站:使用官方 JavaScript 程式庫,整合「按鈕」和「一鍵登入」流程。
Android:使用官方 Android SDK 進行整合。
iOS:使用官方 iOS SDK 整合。
在後端開發中:
在系統中,使用 sub 聲明做為使用者的專屬永久 ID。
第 3 階段:強化安全性及推出正式版
確保整合功能安全無虞、符合規定,且可投入實際工作環境。
審查並導入安全性最佳做法。
請在發布前完成 OAuth 應用程式驗證程序。
確保應用程式在使用者刪除帳戶時,能正確處理權杖撤銷。
一般最佳做法 (所有平台)
無論您要開發哪個平台的應用程式,都適用這些做法。開發人員也應詳閱一般 OAuth 2.0 政策,確保完全遵守規定。
設定 Google Cloud 專案
本節將說明 Google Cloud 專案的架構最佳做法,以及如何設定 OAuth 用戶端,確保安全和品牌法規遵循。
測試和正式環境使用不同的專案
由於部分 Google 政策僅適用於正式版應用程式,您必須在 Google Cloud 控制台中,為不同的部署環境 (例如開發、測試和正式版) 建立個別專案。詳情請參閱這個頁面。
為每個品牌或網域使用不同的專案
如果貴機構管理多個不同品牌的應用程式,每個品牌都應有專屬的 Google Cloud 專案。同意畫面上向使用者顯示的資訊 (例如應用程式名稱、標誌、支援電子郵件地址,以及服務條款和隱私權政策的連結) 是在專案層級設定。也就是說,在單一專案中建立的所有 OAuth 用戶端 ID 都會共用相同的品牌。為每個品牌建立專案,可確保使用者看到所用應用程式的正確品牌和法律資訊。
提供一般支援電子郵件地址
使用者支援電子郵件地址會公開顯示在 OAuth 同意畫面上。為維持專業形象並確保服務不中斷,請務必在 Google Cloud 專案的 OAuth 同意畫面設定中,設定一般支援電子郵件地址 (例如
support@yourdomain.com),而非個別員工的電子郵件地址。詳情請參閱這個頁面。每個平台都有專屬的 OAuth 用戶端
請為應用程式執行的每個平台 (例如網頁、Android、iOS) 分別建立 OAuth 用戶端,這些用戶端都位於相同的 Google Cloud 專案中。為各平台使用正確的用戶端類型至關重要,主要有以下兩個原因:
- 強化安全性:每種用戶端類型都會啟用平台專屬的安全防護功能。舉例來說,Android 用戶端可以透過套件名稱和簽署憑證鎖定,防止未經授權使用您的用戶端 ID。
- 功能正常運作:確保應用程式正確整合平台專屬的 SDK 和功能,例如 Android 的憑證管理工具,或是 iOS 的「使用 Google 帳戶登入」SDK。
這種結構也能簡化使用者體驗。由於同意聲明是在 Google Cloud 專案層級處理,使用者只需要一次授權,應用程式就能在所有平台上存取資料。詳情請參閱官方 OAuth 2.0 政策。
完成 OAuth 應用程式驗證
如要讓正式版應用程式顯示名稱和標誌,必須先通過驗證。驗證類型取決於您向使用者索取的資料。
為協助您規劃發布時間表,Google 提供詳細資料,說明不同驗證類型和預計審查時間。如要進一步瞭解驗證政策,請參閱 OAuth 應用程式驗證說明中心。
安全性與權杖處理
本節著重於開發人員必須在後端伺服器上導入的執行階段需求和安全措施。
將 Google ID 權杖與後端整合
- 驗證 ID 權杖:請務必在後端伺服器上驗證 Google ID 權杖的完整性。請勿僅因權杖是從用戶端傳送而信任該權杖。建議您使用 Google API 用戶端程式庫進行這項驗證。詳情請參閱「在伺服器端驗證 Google ID 憑證」。
- 使用
sub聲明:請只使用 Google ID 權杖sub欄位做為使用者 ID,因為這個欄位在所有 Google 帳戶中都是專屬且穩定,而且絕不會重複使用。您應儲存sub欄位,並在帳戶管理系統中與使用者建立關聯。雖然您可以使用 ID 權杖中的電子郵件地址,檢查使用者是否已有帳戶,但請勿將電子郵件地址做為 ID,因為 Google 帳戶在不同時間點可能有多個電子郵件地址。
在刪除帳戶時撤銷權杖
強烈建議為透過 Google 登入的使用者提供將 Google 帳戶與應用程式取消連結的功能。如果使用者選擇刪除帳戶,您必須撤銷應用程式取得的所有存取權和重新整理權杖。
如要瞭解用戶端權杖撤銷作業的詳細資訊,請參閱網頁、Android、iOS 說明文件。如要從伺服器端撤銷權限,請參閱「使用 OAuth 2.0 處理網路伺服器應用程式」。
將驗證與授權分開
Google 登入 SDK 只會要求驗證所需的範圍。如果應用程式需要存取其他 Google 服務 (例如 Google 日曆或雲端硬碟),您應另外要求這些權限,且僅限使用者嘗試執行需要這些權限的操作時。詳情請參閱「驗證和授權階段分開處理」。
安全性最佳做法
為確保整合安全無虞,請務必使用 Google API 用戶端程式庫,在後端伺服器上驗證 ID 權杖。如要更全面地防範各種威脅,請導入安全防護套裝組合和跨帳戶防護功能 (RISC)。此外,強烈建議您為 iOS 應用程式整合 App Check,確保要求來自正版應用程式。
使用者體驗 (UX)
本節著重於最佳化使用者面向的元素,以及登入/註冊流程。
醒目顯示按鈕:「使用 Google 帳戶登入」按鈕應清楚顯示在登入和註冊頁面,方便使用者存取。
遵循品牌規範:使用 Google 官方品牌的登入按鈕,確保使用者享有連貫一致且值得信賴的體驗。詳閱官方的「使用 Google 帳戶登入品牌宣傳指南」。
順暢的註冊體驗:對於新使用者,系統會在他們首次成功完成「使用 Google 帳戶登入」流程時,自動建立帳戶或將使用者導向新帳戶建立流程。在後端,檢查是否有指定
subID 的使用者,如果沒有,請建立新帳戶。這可減少註冊作業。簡化登入程序:對於回訪使用者,請使用
subID 識別使用者,並驗證他們是否登入現有帳戶。導入網頁和 Android 的自動登入功能,以及 iOS 的狀態還原功能,讓使用者快速安全地返回應用程式。管理社群媒體登入方式:在使用者設定中提供集中管理的「已連結帳戶」部分,使用者可以在這裡管理各種社群媒體登入方式 (例如 Google)。
連結:為使用其他方法 (例如使用者名稱和密碼) 的現有使用者提供「使用 Google 帳戶登入」按鈕。按一下這個按鈕會啟動驗證流程,將 Google 帳戶連結至現有設定檔。
取消連結:提供取消連結帳戶的選項。如要完成這項操作,請撤銷權杖,並從資料庫中移除 Google 關聯。
Android 實作 (應用程式和遊戲)
標準 Android 應用程式
如要實作 Android 應用程式,請使用 Credential Manager。 建議您採用這種方法處理使用者憑證,在 Android 上提供統一、安全且一致的登入體驗。
請使用 Android 的 OAuth 用戶端 ID 進行實作。如果您已在其他平台 (例如網頁、iOS) 實作「使用 Google 帳戶登入」功能,請在相同的 Google Cloud 專案中,建立新的 OAuth 用戶端 ID Android 類型。
導入流程
完善的實作方式應包含 Credential Manager 的底部功能表 UI 和「使用 Google 帳戶登入」按鈕。
- 底部功能表:這是由開發人員主導的低摩擦提示,當使用者進入登入畫面時,憑證管理工具會顯示這項提示。
- 「使用 Google 帳戶登入」按鈕:這是使用者可輕觸啟動的明確登入流程。
- 請務必正確設定 Google Cloud 專案。這包括建立正確類型的 OAuth 用戶端 ID,以及提供特定詳細資料,例如應用程式的
SHA-1憑證指紋。為確保設定正確無誤,請務必按照官方 Android 開發人員指南操作。
您一律應加入按鈕流程,因為使用者可能會關閉底部功能表,或是在偏好設定中停用底部功能表。這個按鈕可確保使用者隨時都能啟動登入程序。
刊登位置策略
「使用 Google 帳戶登入」按鈕:
Credential Manager Bottomsheet:
Android 遊戲
對於 Android 遊戲,不建議使用憑證管理工具。 遊戲開發人員應改用 Google Play 遊戲服務 (PGS) 方法,著重於使用「使用 Google 帳戶登入」功能進行跨平台 Google 身分識別。詳情請參閱透過 SiWG 實現跨平台連續性說明文件。
iOS 實作項目
使用官方的「使用 Google 帳戶登入」SDK
如果是 iOS 應用程式,請使用官方的 Sign in with Google for iOS and macOS SDK。 這個程式庫提供最安全且簡單易用的方式,整合「使用 Google 帳戶登入」功能。
請使用 iOS 的 OAuth 用戶端 ID 進行實作。如果您已在其他平台 (例如網頁、Android) 導入「使用 Google 帳戶登入」功能,請在相同的 Google Cloud 專案中,建立新的 OAuth 用戶端 ID iOS 類型。
新增「使用 Google 帳戶登入」按鈕
- 位置:在應用程式的登入檢視畫面中,於註冊和登入頁面新增「使用 Google 帳戶登入」按鈕。請將「使用 Google 帳戶登入」按鈕放在顯眼位置,並與其他登入方式並列,例如使用者名稱和密碼欄位,或是其他社群登入服務供應商。
- 使用建議的元件:針對 SwiftUI 和 UIKit,使用 SDK 提供的官方按鈕元件。這些元件會自動產生符合 Google 品牌宣傳指南的按鈕,建議您使用這種方式顯示按鈕。
還原使用者登入狀態
- 順暢返回:應用程式啟動時,請呼叫
restorePreviousSignIn,嘗試還原已使用 Google 驗證的使用者登入狀態。這樣一來,回訪使用者每次開啟應用程式時,就不必登入帳戶,可享有與其他平台自動登入功能相近的流暢體驗。
使用 App Check 提升安全性
驗證 OAuth 2.0 用戶端的要求是否來自正版應用程式,防止後端資源遭到濫用。App Check 會使用認證供應商,驗證要求是否來自正版且未經竄改的應用程式例項,並拒絕不符合條件的要求。詳情請參閱「iOS 上的 Google 登入服務適用的應用程式檢查」。
網頁導入作業
網站和網頁應用程式的相關注意事項。
使用官方的「使用 Google 帳戶登入」JavaScript 程式庫
如果是網頁實作,請使用官方的 「使用 Google 帳戶登入」JavaScript 程式庫。這是最新一代的 Google 網頁身分識別程式庫,包含「按鈕」和「一鍵登入」功能。
請使用「網頁」的 OAuth 用戶端 ID 進行實作。如果您已在其他平台 (例如 Android、iOS) 導入「使用 Google 帳戶登入」功能,請在相同的 Google Cloud 專案中,建立新的 OAuth 用戶端 ID 網頁類型。
實作「按鈕」和「輕觸一下」流程
建議同時導入「使用 Google 帳戶登入」按鈕和 One Tap 登入體驗。
- 「使用 Google 帳戶登入」按鈕:這是由使用者主動發起的明確登入/註冊流程。
- One Tap:提供順暢的登入或註冊提示,不會造成太多干擾。
- 兩種實作方式都使用相同的網頁 OAuth 用戶端 ID。
您一律應將按鈕設為主要登入選項。使用者可以在 Google 帳戶設定中關閉或停用「一鍵登入」,但「一鍵登入」按鈕一律會顯示,確保使用者永遠不會無法登入。
刊登位置策略
「使用 Google 帳戶登入」按鈕:
- 位置:在專屬的註冊或登入頁面上,顯示個人化的「使用 Google 帳戶登入」按鈕。
- 顯示位置:將 Google 登入按鈕與其他登入方式並列,例如使用者名稱和密碼欄位,或是其他社群登入服務供應商。
- 檢查:請參閱「使用 Google 帳戶登入按鈕注意事項」一節,瞭解如何進行最佳設定及提升成效。
One Tap 提示: