Google 登入概念指南

適用於 Google 助理的 Google 登入 (GSI) 機制提供最流暢的連結 也是開發人員最容易實作的流程。 有了 GSI,您的動作可在以下期間要求存取使用者的 Google 個人資料 對話,並在使用者同意後接收使用者名稱和電子郵件地址。 和個人資料相片你的動作就能根據這項資訊來檢查 使用者在系統中擁有 Google 帳戶。如果不是,您的動作會詢問使用者是否 他們想要根據您的 Google 個人資料內容

如果符合下列任一情況,則建議使用 GSI 做為帳戶連結解決方案:

  • 您本身沒有驗證系統,且/或希望您的 使用者必須擁有 Google 帳戶。舉例來說,如果您的動作 您就能在任何 Google Cloud 產品與服務中 帳戶。
  • 您已經有驗證系統,且想要連結 使用個人 Google 帳戶登入您的系統。

若要確認 GSI 是適合您的解決方案,請參閱 選擇帳戶連結類型頁面。

重要詞彙

開始瞭解 GSI 的運作方式前,請先熟悉下列字詞:

  • Google ID 權杖:經簽署的使用者身分宣告,當中包含 使用者的基本 Google 個人資料資訊 (包括姓名、電子郵件地址和 個人資料相片) 即可。Google ID 權杖 JSON Web Token (JWT)。

    以下是已解碼的權杖範例:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus由系統設定的屬性,用於指出 目前的工作階段有已驗證的使用者。

  • user.accountLinkingStatus由系統設定的屬性,用於指出 目前工作階段的使用者有已連結的身分。

  • 帳戶連結系統場景:導入確認機制的預先定義場景 也能配合特定用途加以自訂

運作方式

GSI 的基本流程如下:

  1. 您的動作要求使用者同意存取其 Google 個人資料。
  2. 使用者提供同意聲明後,您的動作會收到 Google ID 權杖。 包含使用者的 Google 個人資料資訊。
  3. 驗證權杖並解碼,以便讀取個人資料內容。如果您使用 Actions on Google Fulfillment 程式庫適用於 Node.js, 就會為您驗證符記並加以解碼
  4. 你的動作會使用這個權杖檢查使用者的 Google 個人資料 才是有效的資訊

    1. 如果有,表示使用者已使用 Google 帳戶。使用者可以繼續與以下對話 Google 助理,會將孩子的身分與他們的 Google 帳戶連結。
    2. 如果沒有的話,使用者可以使用 Google ID 權杖包含的資訊這樣一來,使用者就能 繼續與已連結 Google 助理對話。

Google 登入流程

本節說明使用 Google 登入功能可能發生的各種流程。

流程 1:使用者資訊存在於系統中

下圖顯示使用 GSI 時發生的 使用者的資訊已存在於您的系統中:

在此情況下,您將轉換至帳戶連結系統情境 客製化的理由在這個場景中,系統會要求使用者授予權限 存取自己的 Google 個人資料。

使用者同意後,Google 助理會傳送內含 user@gmail.com 的個人資料資訊。在本例中 包含在 user@gmail.com 的 Google ID 權杖中,與 系統因此,動作會自動連結使用者在動作中的身分 。這樣一來,您的 Webhook 就能透過 並提供相應回應

流程 2:使用者資訊不存在於您的系統中

下圖顯示使用 GSI 時發生的 使用者的資訊不存在在您的系統中:

在此情況下,Google ID 權杖所含資訊 「user@gmail.com」與系統中的帳戶不相符,因此 Google 助理 詢問使用者是否要建立新帳戶。使用者可以完成 使用語音建立帳戶,不用將帳戶轉給對方 遭到過濾的裝置。

如果使用者同意建立帳戶,您的服務就會使用 建立專屬帳戶 使用者。建立帳戶之後,使用者在動作中看見的身分 並連結至新的 Google 帳戶。

在此情況下,使用者沒有平常的訂單,因為他們才剛前往 服務,因此你的動作詢問他們想要訂購什麼餐點。個人中心 也可以詢問使用者是否要設定最近的訂單 他們會像往常一樣排序