帳戶連結後,Google 帳戶持有人就能快速安全地流暢地連結至您的服務。您可以選擇導入 Google 帳戶連結, 將您 Google Analytics (分析) 中的使用者資料與您的平台共用。
安全 OAuth 2.0 通訊協定可讓您安全地將使用者的 Google 帳戶與其平台上的帳戶連結,進而授權 Google 應用程式和裝置存取您的服務。
使用者可透過「Google 帳戶連結」在您的平台上連結帳戶或取消連結,並視需要建立新帳戶。
用途
導入「Google 帳戶連結」的幾個可能原因如下:
將平台上的使用者資料提供給 Google 應用程式和服務。
使用 Google TV 播放影片和電影內容。
透過 Google Home 應用程式和 Google 助理管理和控制 Google 智慧型住宅已連結的裝置,然後說出「Ok Google 開燈」。
運用對話動作,為使用者建立自訂 Google 助理體驗和功能。 「Ok Google,依照星巴克訂購我平常的訂購商品。」
將使用者的 Google 帳戶連結至獎勵合作夥伴帳戶後,在 YouTube 上觀看符合資格的直播影片,就能獲得獎勵。
在申請過程中,使用 Google 帳戶設定檔中預先提供的共用資料預先填入新帳戶。
支援的功能
「Google 帳戶連結」支援下列功能:
使用 OAuth 連結隱含流程輕鬆快速地共用資料。
透過 OAuth 連結授權碼提供更完善的安全防護。
透過簡化連結功能,登入現有使用者或註冊新的 Google 已驗證使用者、取得其同意聲明,並以安全的方式分享資料。
善用應用程式翻轉功能,讓操作流程更順暢。只要在信任的 Google 應用程式中,輕觸一下就能安全地開啟經過驗證的 Android 或 iOS 應用程式,輕觸一下即可授權使用者並連結帳戶。
定義自訂範圍僅分享必要的資料,藉此提升使用者隱私;明確定義資料的使用方式,提高使用者的信任感。
您可以取消連結帳戶,撤銷您在平台上託管的資料和服務存取權。實作選用的憑證撤銷端點可讓您與 Google 啟動的事件保持同步,而跨帳戶防護功能(RISC) 則能讓 Google 通知您的平台發生任何取消連結事件。
帳戶連結流程
「Google 帳戶連結」流程有 3 個採用 OAuth 技術,且需要您管理或控制符合 OAuth 2.0 規定的授權和憑證交換端點。
連結程序中,您必須先取得帳戶持有人同意,連結帳戶並分享資料,才能向 Google 核發個別 Google 帳戶的存取憑證。
OAuth 連結 ('Web OAuth')
這是會將使用者傳送到您網站的基本 OAuth 流程。系統會將使用者重新導向至您的網站,以登入自己的帳戶。使用者登入後,您同意在 Google 服務中將您的資料提供給 Google。此時,使用者的 Google 帳戶和您的服務就已完成連結。
OAuth 連結支援授權碼與隱含式 OAuth 流程。您的服務必須針對隱含流程託管符合 OAuth 2.0 規定的授權端點,並且在使用授權碼流程時同時提供授權與憑證交換端點。

圖 1. 透過 Web OAuth 在使用者的手機上進行帳戶連結
以 OAuth 為基礎的應用程式翻轉連結 ('App Flip')
OAuth 流程會將使用者帶往您的應用程式進行連結。
以 OAuth 為基礎的 App Flip 連結會引導使用者在已驗證的 Android 或 iOS 行動應用程式與 Google 平台之間移動,藉此查看提議的資料存取權變更,並授權使用者在您的平台上將他們的帳戶與 Google 帳戶建立連結。如要啟用 App Flip,您的服務必須支援使用 OAuth 連結或 OAuth 型 Google 登入連結的方式,使用授權碼流程。
Android 裝置和 iOS 裝置皆支援應用程式翻轉功能。
運作方式:
Google app 會檢查使用者的裝置是否已安裝該應用程式:
- 找到應用程式後,使用者就會「翻轉」您的應用程式。應用程式須先徵得使用者同意,才能將帳戶與 Google 建立連結,再恢復成 Google 介面。
- 如果找不到應用程式,或者應用程式啟動程序發生錯誤,就會發生錯誤。系統會將使用者重新導向至「簡化版」或「網路 OAuth」。

圖 2. 透過應用程式 Flip 將使用者的帳戶連結到使用者的帳戶
OAuth 式精簡連結 ('精簡)
以 OAuth 為基礎的 Google 登入簡化連結:在 OAuth 連結之外,還加入了 Google 登入功能,使用者不需離開 Google 介面,就能完成連結程序,因此可以簡化連結程序和放棄程序。以 OAuth 為基礎的精簡連結:藉由將 Google 登入與 OAuth 連結搭配使用,就能提供順暢的登入體驗、建立帳戶及連結帳戶,為使用者提供最佳體驗。您的服務必須支援符合 OAuth 2.0 規定的授權和憑證交換端點。此外,您的權杖交換端點必須支援 JSON Web Token (JWT) 宣告,並實作 check
、create
和 get
意圖。
運作方式:
Google 聲明使用者帳戶的擁有權,並將以下資訊傳送給您:
- 如果您的資料庫中已有使用者的帳戶,則該使用者已成功將您的 Google 帳戶與您的帳戶連結。
- 如果您的資料庫中沒有使用者的帳戶,使用者便可使用 Google 提供的聲明資訊建立新的第三方帳戶:電子郵件、姓名和個人資料相片,或選擇登入另一個電子郵件地址並建立連結 (使用者必須透過 Web OAuth 登入該服務)。

圖 3. 使用者可透過帳戶連結,在使用者的手機上進行帳戶連結
這時該使用哪個流程?
建議您導入所有流程,確保使用者享有最佳的連結體驗。簡化的應用程式和應用程式翻轉流程可降低連結阻礙,因為使用者只需執行幾個步驟,就能完成連結程序。Web OAuth 連結可達到最低程度,因此在此之後,您可以將它加到其他連結流程中。
使用憑證
Google 帳戶連結採用 OAuth 2.0 業界標準,
取得帳戶持有人的同意,允許他們連結帳戶和共用資料時,您就能向 Google 申請個人 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 設定詳情,並提供憑證以啟用帳戶連結功能。詳情請參閱註冊一文。