選擇帳戶連結類型

最適合動作的帳戶連結類型是能為使用者提供最流暢的體驗,並滿足應用程式或業務需求。選擇連結類型大多取決於下列因素:

  • 是否允許透過語音建立帳戶
  • 指定使用者是否可以使用非 Google 帳戶登入您的服務
  • 您的服務是否可儲存機密資訊 (例如用戶端密鑰)

如要找出理想的帳戶連結類型,請按照下列步驟操作:

  1. 請參考「找出您偏好的登入類型」一節的問題。
  2. 請參閱決策樹狀圖,瞭解如何選擇連結類型。
  3. 請根據您選擇的初始類型,前往相應的章節,進一步修改運作方式。

確定偏好的登入類型

使用決策樹狀圖之前,請先考慮下列問題:

  • 您是否預期所有使用者都擁有 Google 帳戶?
    • 如果您的動作僅指定 Google 助理,應該所有使用者都擁有 Google 帳戶。如果動作指定的平台是 Google 助理以外的平台,就無法預期所有使用者都擁有 Google 帳戶。
    • 如果您的服務已有人使用,可能是因為有些使用者沒有 Google 帳戶,或是未使用 Google 帳戶登入您的服務。
  • 如果您採用 OAuth 實作,可以擴大支援 Google 通訊協定嗎?
    • 如要支援 Google 通訊協定,您必須在權杖交換端點中加入 intent=getintent=create 功能。這項功能可讓 Google 檢查使用者是否已在您的後端中,並分別提出在您的服務中建立新帳戶的要求。

請按照下方決策樹狀圖,找出最適合您和使用者的帳戶連結類型:

選取連結類型後,請繼續參閱下方對應章節進一步瞭解運作方式,並進一步決定帳戶連結在動作中的運作方式。

以 OAuth 為基礎的 Google 登入「簡便」連結

簡化連結類型除了會使用 OAuth 帳戶連結以外,還會加入 Google 登入 (GSI),享有 GSI 的優勢 (例如 Google 使用者的語音連結連結),並為透過非 Google 帳戶註冊您服務的使用者啟用帳戶連結功能。這個連結類型對使用者而言特別實用,因為對於非 Google 使用者而言,這是順暢無礙的流程。如要進一步瞭解簡化連結的運作方式,請參閱 OAuth 式 Google 登入「簡易」連結概念指南

修正 OAuth 式 Google 登入「簡便」連結類型

在動作中使用簡化連結類型時,您可以在動作主控台中指定下列問題的答案,藉此定義運作方式:

  1. 您要啟用語音帳戶的建立功能,還是只允許網站建立帳戶?

    一般來說,您應啟用透過語音建立帳戶的功能,讓螢幕不受螢幕裝置的使用者可以建立帳戶,不必轉移至其他裝置。如果您不允許透過語音建立帳戶,Google 助理會開啟您用於使用者驗證的網站網址,並將使用者導向手機以繼續進行帳戶連結流程。

    不過,如果符合下列任一情況,請勿允許透過語音建立帳戶:

    1. 您需要完整控管帳戶建立流程。例如,您可能需要在建立帳戶或傳送其他類型的通知時,向使用者顯示服務條款。
    2. 您想確保已使用該帳戶登入的使用者。舉例來說,如果您提供會員方案,不希望使用者失去在帳戶中累積的點數,您可能會希望使用者繼續使用現有帳戶。
  2. 要使用授權碼流程或隱含流程嗎?

    授權碼流程和隱含流程的不同在於,授權碼流程需要第二個端點,也就是「權杖交換」端點。此端點會使用重新整理權杖來產生新的短期存取權杖,而不必提示使用者再次登入。

    反之,如果您使用隱性流程,則會將長期存取權杖傳回給 Google,通常不需要重新產生存取權杖。如要進一步瞭解授權碼和隱含流程,請參閱 OAuth 式 Google 登入「簡易」連結概念指南

    Google 建議您在動作中使用授權碼流程,因為這種流程比較安全。不過,如果您的服務無法儲存機密資訊 (即用戶端密鑰),請改用隱含流程。例如,您必須為公開用戶端 (例如單頁應用程式 (SPA)) 使用隱含流程。

考量這些決策點後,請參照以下決策樹狀圖:

Google 登入

使用 Google 登入 (GSI) 連結類型時,您的動作可在對話期間要求存取使用者的 Google 設定檔,並使用該設定檔資訊來檢查服務後端中是否有使用者。如果使用者不存在,可以在系統中使用他們的 Google 個人資料資訊建立新帳戶。

針對 GSI,您必須透過語音啟用帳戶建立功能,讓使用者可透過語音完成整個流程。如要進一步瞭解 GSI,請參閱 Google 登入概念指南

OAuth 連結

使用者啟用 OAuth 連結類型後,透過標準 OAuth 2.0 流程登入。OAuth 連結類型支援兩種業界標準 OAuth 2.0 流程:隱含授權程式碼流程。

Google 不建議使用 OAuth 連結類型,因為當使用者使用非螢幕裝置時,必須將使用者從語音轉移至畫面才能完成登入程序。如果您目前已實作 OAuth 2.0 伺服器,且無法擴充權杖交換端點,也無法透過 ID 權杖新增 Google 通訊協定,以便透過 ID 權杖建立帳戶,則可考慮採用此流程。詳情請參閱 OAuth 連結概念指南

改善流程

在動作中使用 OAuth 連結類型時,您必須在動作主控台中指定下列問題的答案,才能定義其運作方式:

  1. 要使用授權碼流程或隱含流程嗎?

    OAuth 連結類型支援兩種業界標準 OAuth 2.0 流程:隱含授權程式碼流程。授權碼流程和隱含流程的不同在於,授權碼流程需要使用第二個端點,也就是「權杖交換」端點。這個端點會使用重新整理權杖來產生新的短期存取權杖,而不必提示使用者再次登入。

    反之,如果您使用隱性流程,則會將長期存取權杖傳回給 Google,通常不需要重新產生存取權杖。如要進一步瞭解授權碼和隱含流程,請參閱 OAuth 連結概念指南

    Google 建議您在動作中使用授權碼流程,因為這種流程比較安全。不過,如果您的服務無法儲存機密資訊 (即用戶端密鑰),請改用隱含流程。例如,您必須為公開用戶端 (例如單頁應用程式 (SPA)) 使用隱含流程。