帳戶連結可讓 Google 帳戶持有人快速且安全地連線至服務。您可以選擇導入 Google 帳戶連結,以便將平台的使用者資料提供給 Google 應用程式和服務。
安全 OAuth 2.0 通訊協定可讓您安全地將使用者的 Google 帳戶連結至其平台上的帳戶,進而授權 Google 應用程式和裝置存取您的服務。
使用者可以連結或取消連結自己的帳戶,也能選擇透過 Google 帳戶連結在您的平台上建立新帳戶。
用途
導入 Google 帳戶連結的幾個可能原因如下:
與 Google 應用程式和服務分享使用者平台中的資料。
使用 Google TV 播放影片和電影內容。
使用 Google Home 應用程式和 Google 助理管理及操控 Google 智慧型住宅已連結的裝置,並說出「Ok Google 開燈」。
使用對話動作功能,為使用者自訂 Google 助理體驗和功能。
允許使用者在 YouTube 上連結獎勵合作夥伴帳戶後,在 YouTube 上觀看符合資格的直播影片,因而獲得獎勵。
申請時,系統會預先使用 Google 帳戶設定檔的共用資料預先填入新帳戶。
支援的功能
Google 帳戶連結支援下列功能:
使用 OAuth 連結隱含流程輕鬆快速分享資料。
使用 OAuth 連結授權碼流程提供更完善的安全性。
登入現有使用者,或為 Google 驗證的新使用者完成登入平台的程序,取得使用者的同意聲明,並透過簡化連結安全共用資料。
使用應用程式翻轉功能減少便利性。在信任的 Google 應用程式中,輕觸一下就能安全開啟已驗證的 Android 或 iOS 應用程式,而輕觸一下就能為使用者提供同意授權,並連結帳戶。
藉由定義自訂範圍來僅分享必要資料來提升使用者隱私,並明確定義資料的使用方式,藉此提升使用者信任感。
透過「取消連結」帳戶即可撤銷對平台上代管的資料和服務的存取權。實作選用的權杖撤銷端點可讓您與 Google 啟動的事件保持同步,而跨帳戶防護功能 (RISC) 則可讓您在 Google 平台上發生任何取消連結事件時通知 Google。
帳戶連結流程
有 3 個 Google 帳戶連結流程均以 OAuth 為基礎,並需要您管理或控制與 OAuth 2.0 相容的授權和權杖交換端點。
在連結過程中,如果帳戶擁有者同意連結其帳戶並分享資料,您要向 Google 核發個別應用程式的存取權杖,
OAuth 連結 ('網路 OAuth')
這是基本 OAuth 流程,可將使用者帶往您的網站進行連結。系統會將使用者重新導向至您的網站,以登入自己的帳戶。登入後,使用者同意將您的服務資料提供給 Google。此時,使用者的 Google 帳戶和您的服務就會建立連結。
OAuth 連結支援授權碼和隱含 OAuth 流程。您的服務必須代管隱含流程且符合 OAuth 2.0 的授權端點,且在使用授權碼流程時,您必須公開授權和權杖交換端點。

圖 1. 使用者的手機透過網路 OAuth 連結帳戶
OAuth 型應用程式翻轉連結 ('應用程式翻轉')
可將使用者導向應用程式進行連結的 OAuth 流程。
以 OAuth 為基礎的應用程式翻轉連結功能會在使用者完成已驗證的 Android 或 iOS 行動應用程式與 Google 平台間切換,引導使用者查看提議的資料存取權異動,並授權將您的平台帳戶連結至其 Google 帳戶。如要啟用應用程式翻轉功能,您的服務必須使用授權碼流程支援 OAuth 連結或以 OAuth 為基礎的 Google 登入連結。
Android 裝置和 iOS 應用程式皆支援應用程式翻轉功能。
運作方式:
Google 應用程式會檢查使用者的裝置是否已安裝您的應用程式:
- 找到應用程式後,使用者就會「翻轉」到您的應用程式。應用程式必須徵得使用者同意,才能將帳戶連結至 Google,接著才「返回」#39;Google 介面。
- 如果找不到應用程式,或應用程式切換程序發生錯誤,系統會將使用者重新導向至簡化或網路 OAuth 流程。

圖 2. 透過 App Flip 在使用者手機上的帳戶連結
OAuth 型簡化連結 ('簡化)')
OAuth 式 Google 登入簡化連結功能可在 OAuth 連結之外新增 Google 登入功能,讓使用者能夠在不離開 Google 介面的情況下完成連結程序,進而減少阻礙和中斷情形。OAuth 式簡化連結能結合 Google 登入和 OAuth 連結,為使用者提供流暢的登入、帳戶建立和帳戶連結體驗,提供最佳的使用者體驗。您的服務必須支援與 OAuth 2.0 相容的授權和權杖交換端點。此外,您的權杖交換端點必須支援 JSON Web Token (JWT) 斷言,並實作 check
、create
和 get
。
運作方式:
Google 會聲明使用者帳戶的擁有權,並將下列資訊傳送給您:
- 如果使用者在資料庫中已有該帳戶,則對方就可以在您的服務上將自己的帳戶與 Google 帳戶連結。
- 如果資料庫中沒有任何使用者帳戶,使用者可以使用 Google 提供的聲明資訊建立新的第三方帳戶:電子郵件、姓名和個人資料相片,或是選擇登入及連結其他電子郵件 (這會需要透過網路 OAuth 登入服務)。

圖 3. 使用者可透過簡化連結的方式在手機上連結自己的帳戶
這時應該採用哪種流程?
建議您導入所有流程,確保使用者享有最佳連結體驗。簡化的應用程式和應用程式翻轉流程可簡化連結程序,因為使用者只需幾個步驟就能完成連結程序。網頁 OAuth 連結最容易,也是很好的起點,您可以將其加入其他連結流程。
使用權杖
Google Account 是以 OAuth 2.0 業界標準為依據,
獲得帳戶擁有者同意連結其帳戶與分享資料後,您就能為個別 Google 帳戶核發存取權權杖。
代幣類型
OAuth 2.0使用稱為令牌的字符串在用戶代理,客戶端應用程序和OAuth 2.0服務器之間進行通信。
帳戶鏈接期間可以使用三種類型的OAuth 2.0令牌:
授權碼。可以交換訪問權限的短期令牌和刷新令牌。為了安全起見,Google會調用您的授權端點來獲取一次性使用或壽命很短的代碼。
訪問令牌。授予承載者對資源的訪問權的令牌。為了限制可能因丟失此令牌而導致的風險敞口,它的使用壽命有限,通常會在一個小時左右後過期。
刷新令牌。訪問令牌到期後可以交換新的訪問令牌的長期令牌。當您的服務與Google集成時,此令牌將由Google專門存儲和使用。 Google調用您的令牌交換端點,以將刷新令牌交換為訪問令牌,這些訪問令牌又用於訪問用戶數據。
代幣處理
在使用令牌時,群集環境和客戶端-服務器交換中的競爭條件可能導致複雜的時序和錯誤處理方案。例如:
- 您收到一個新的訪問令牌的請求,並發出一個新的訪問令牌。同時,您會收到使用先前未過期的訪問令牌訪問服務資源的請求。
- 您的刷新令牌回复尚未被Google接收(或從未收到)。同時,先前有效的刷新令牌用於Google的請求中。
由於在群集中運行的異步服務,網絡行為或其他方式,請求和答复可以以任何順序到達,或者根本無法到達。
無法保證您和Google的令牌處理系統之間以及之間的即時且完全一致的共享狀態。多個有效的未過期令牌可以在短時間內在系統內或整個系統中共存。為了最大程度地減少對用戶的負面影響,我們建議您執行以下操作:
- 即使發布了更新的令牌,也要接受未過期的訪問令牌。
- 使用替代方法來刷新令牌輪換。
- 支持多個並發有效的訪問和刷新令牌。為了安全起見,應限制令牌的數量和令牌的生存期。
維護和停運處理
在維護或計劃外中斷期間,Google可能無法調用您的授權或令牌交換端點來獲取訪問權限並刷新令牌。
您的端點應以503
錯誤代碼和空主體作為響應。在這種情況下,Google將在有限的時間內重試失敗的令牌交換請求。如果Google以後能夠獲取刷新和訪問令牌,則失敗的請求對用戶不可見。
如果用戶發起訪問請求失敗的請求,則會導致可見錯誤。如果使用隱式OAuth 2.0流程,則要求用戶重試鏈接失敗。
推薦建議
有許多解決方案可以最大程度地減少維護影響。要考慮的一些選項:
維護您現有的服務,並將有限數量的請求路由到您的新更新的服務。僅在確認期望的功能之後,遷移所有請求。
在維護期間減少令牌請求的數量:
將維護週期限制為少於訪問令牌生存期。
臨時增加訪問令牌的生存期:
- 將令牌壽命增加到大於維護期限。
- 等待兩次訪問令牌生存期,從而使用戶可以將短期令牌替換為較長令牌。
- 輸入維護。
- 使用
503
錯誤代碼和空主體來響應令牌請求。 - 退出維護。
- 將令牌生存期減少到正常水平。
註冊 Google
我們需要您提供 OAuth 2.0 設定的詳細資料,並分享憑證才能啟用 帳戶連結。詳情請參閱「註冊」。