OAuth Tabanlı Google ile Oturum Açma "Basitleştirilmiş" bağlama dair kavram kılavuzu

OAuth tabanlı Google ile Oturum Açma "Basitleştirilmiş" bağlantı türü, OAuth tabanlı hesap bağlama. İşleminizde bu bağlantı türünü kullanırsanız akışı Google ile Oturum Açma ile başlar. Bu oturum, kullanıcının Google Hesabı'nın giriş yapıp yapmadığını kontrol etmenizi profil bilgileri sisteminizde mevcuttur. Bağlanmıyorsa standart OAuth akışı başlar. Bu iki bağlantı türünün bir kombinasyonunu sunduğunuzda, kullanıcılarınız Google hesabıyla veya Google dışı hesapla işleminizde kimliğini belirtmelisiniz. Eğer isterlerse isterlerse Google profilleriyle yeni bir hesap da ekleyebilirsiniz.

Aşağıdakilerden herhangi biri söz konusu olduğunda, kolaylaştırılmış bağlantı önerilen hesap bağlama çözümüdür: aşağıdakiler geçerlidir:

  • Birden çok platformu kapsayan bir İşleminiz vardır (örneğin, İşlem (bir Android uygulamasıyla çalışır).
  • Mevcut bir kimlik doğrulama sisteminiz var ve kullanıcıların kimliklerinin Google dışı hesaplarla bağlanmasını sağlamak. Örneğin, menü tableti bir bağlılık programı varsa ve kullanıcının puan kazanmış olur.

Kolaylaştırılmış bağlantı oluşturmanın sizin için doğru çözüm olduğunu doğrulamak üzere Hesap bağlama türü sayfanızı seçin.

Anahtar terimler

Basitleştirilmiş bağlantı özelliğinin işleyiş şeklini okumadan önce biraz bilgi edinin. şu şartlar ile:

  • Google kimliği jetonu: Kullanıcı kimliğinin, aşağıdakileri içeren imzalı bir onayı kullanıcının temel Google profil bilgileri (adı, e-posta adresi ve profil resmi). Google kimliği jetonu, JSON Web Jetonu (JWT) olarak değiştirin. Aşağıda kodu çözülmüş bir jeton örneği verilmiştir:
{
  "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: geçerli oturumda doğrulanmış bir kullanıcı var.

  • user.accountLinkingStatus: geçerli oturumdaki kullanıcının bağlı bir kimliği var.

  • Hesap bağlama sistem sahnesi: Onayı uygulayan önceden tanımlanmış bir sahne akışı için özelleştirilebilir ve belirli kullanım alanlarına göre özelleştirilebilir.

  • Yetkilendirme kodu akışı: ile uygulayabileceğiniz bir OAuth 2.0 akışı Basitleştirilmiş bağlantı. Bu akış iki uç nokta gerektirir:

    • Yetkilendirme uç noktası: Oturum açma kullanıcı arayüzünü sunan uç nokta oturum açmamış kullanıcılarınıza gösterebilirsiniz. Bu form, kısa ömürlü bir yetkilendirme kodu biçiminde erişim talep etti.
    • Jeton değişimi uç noktası: Bu uç nokta, iki türden oluşur. :
      1. Uzun ömürlü bir yenileme jetonu için yetkilendirme kodu değiştirir ve kısa ömürlü bir erişim jetonu bulunur. Bu değişim, kullanıcı hesap bağlama akışından geçer.
      2. Kısa ömürlü erişim için uzun ömürlü yenileme jetonu değiştirir jeton. Bu exchange, Google yeni bir erişim jetonuna ihtiyaç duyduğunda gerçekleşir çünkü süresi dolmuştu.
  • Dolaylı kod akışı: Basitleştirilmiş bağlantı. Bu akış yalnızca bir yetkilendirme uç noktası gerektirir. Bu akış sırasında Google, kullanıcının emin olun. Oturum açma başarılı olursa uzun ömürlü bir erişim jetonu kullanarak Google'a dokunun. Bu erişim jetonu artık şuradan gönderilen her isteğe dahil ediliyor: İşleminize Asistan.

  • Erişim jetonu: Hizmetinizi bir cihazın bazı bölümlerine erişmesi için kullanıcı verileri. Erişim jetonları her bir kullanıcıyla ilişkilendirilir.

  • Yenileme jetonu: Bir defa gerçekleştirildiğinde yeni bir erişim jetonuyla değiştirilen jeton kısa ömürlü erişim jetonunun süresi doldu.

Ön koşullar

Basitleştirilmiş bağlantı türünü kullanmak için aşağıdakilere ihtiyacınız vardır:

  • OAuth 2.0 sunucusu
  • Jeton değişimi uç noktası

    Google'ın kimlik jetonundan otomatik bağlantı oluşturma ve hesap oluşturma protokolleri (ör. isteklere intent=get ve intent=create parametrelerini .

İşleyiş şekli

Bu bölümde, basitleştirilmiş bağlantı oluşturma ile ilgili genel akış açıklanmaktadır. Aşağıdaki Kolaylaştırılmış bağlantı akışları bölümünde, a) etkinleştirme veya devre dışı bırakma durumunuza bağlı olarak sesli şekilde oluşturabilir ve b) gizli mi yoksa örtülü yetkilendirme kodu akışı.

Temel akış şu şekildedir:

  1. İşleminiz kullanıcıdan Google profiline erişmek için izin istiyor.
  2. Kullanıcı izin verdikten sonra İşleminiz şu özelliklere sahip bir Google kimliği jetonu alır: Kullanıcının Google profil bilgilerini içeriyorsa.
  3. Profil içeriğini okumak için jetonu doğrulamanız ve kodunu çözmeniz gerekir.
  4. İşleminiz, kullanıcının Google profilinin tespit edebilirsiniz.
    1. Açılıyorsa, kullanıcı zaten kullanıcı kimliği ile kullanıcı kimliği arasında bağlantı oluşturur. Google hesabı. Kullanıcı, şununla devam edebilir: Asistan'ın hesabı bağlıyken.
    2. Yoksa 5. adıma bakın.
  5. Kullanıcı, a) Google profiliyle yeni bir hesap oluşturabilir bilgi edinin veya b) sisteminizde farklı bir hesapla oturum açın. İlgili içeriği oluşturmak için kullanılan kullanıcıya sunulan seçenekler, hizmeti etkinleştirme veya sesle hesap oluşturmayı devre dışı bırakabilir. Kullanıcı standart OAuth akışı başlar.
  6. Kullanıcı yeni bir hesap oluşturduktan veya farklı bir sağlayıcıyla oturum açtıktan sonra hizmetiniz Google'a bir erişim jetonu döndürür. ( yetkilendirme kodu akışını takip ederseniz hizmetiniz ayrıca bir yenileme jetonu döndürür.)
  7. Kullanıcı artık telefonunu kullanarak Asistan'la görüşmeye devam edebilir hesap bağlandı.

Basitleştirilmiş bağlantı akışları

Bu bölümde, Basitleştirilmiş bağlantı ile oluşabilecek çeşitli akışlar ele alınmaktadır. Bu diyagramlar, yetkilendirme kodu akışında gerçekleşen akışları açıklar. yerine dolaylı kod akışını tercih ettiğinizi varsayalım ve Actions Builder'ı kullandığınızı varsayın.

Her akış, kullanıcı İşleminizi çağırdıktan sonra şu genel adımları içerir:

Yukarıdaki akışta, hesap bağlama sistemi sahnesine geçersiniz ve bir gerekçe oluşturabilirsiniz. Sahnede kullanıcıdan erişim izni istiyor Google profil bilgileri. Kullanıcı izin verdikten sonra Asistan, user@gmail.com adlı kullanıcının profil bilgilerini içeren bir istek.

Bu noktadan sonraki akışlar, hesabı yapılandırıp yapılandırmadığınıza bağlı olarak farklılık gösterir Google Voice'a bağlanarak, kullanıcının bilgilerinin Google Haberler'de bahsedeceğim. Bu akışların her biri aşağıdaki bölümlerde açıklanmıştır.

Sesli hesap oluşturma özelliğinin etkin olduğu akışlar

Bu bölümde, Sesle hesap oluşturma.

1. Akış: Kullanıcının bilgileri sisteminizde mevcut

Bu durumda, user@gmail.com tarafından temsil edilen kullanıcı arka ucunuzda mevcuttur. Böylece jeton değişimi uç noktanız, kullanıcı için bir jeton döndürür. Kullanıcının İşleminizdeki kimliği artık bu kişinin Google Hesabı'na bağlı. Kullanıcının orijinal istek ("Her zamanki siparişimi ver"), order_drink. kullanıcısının amacıyla eşleşiyor Ardından webhook'unuz, eşleşen intent'in yerine getirilmesini işler ve user@gmail.com için veritabanının normal sırası. Kullanıcı daha sonra Asistan'la sohbet edebilir.

2. Akış: Kullanıcının bilgileri yoktur ve kullanıcı hesap oluşturur

Sesle hesap oluşturmayı etkinleştirdiğiniz ve user@gmail.com şunu etkinleştirmediği için: arka ucunuzda varsa Asistan, kullanıcıya bunu yapmak isteyip şunlardan birini yapın:

a) Google profil bilgilerini kullanarak sisteminizde yeni bir hesap oluşturabilir, Bu işlem sesle gerçekleştirilir

b) Sisteminizde farklı bir hesapla oturum açın

Bu durumda kullanıcı, sesle yeni bir hesap oluşturmayı seçer. Google aramaları hizmetinizin jeton değişimi uç noktası ile hesap oluşturma isteği ekleyin. Bu istek, gereken bileşenleri içeren Google kimliği jetonunu içerir yeni bir hesap oluşturun. Ardından bu jetondaki bilgileri kullanabilirsiniz (kullanıcının adı ve e-posta adresi) ekleyin.

Hesap oluşturulduktan sonra hizmetiniz bir erişim jetonu döndürür ve yeni oluşturulan hesap için yeni bir jeton oluşturulur. İşleminizdeki kullanıcı kimliği artık Google Hesabı'na bağlı. Kullanıcının orijinal isteği ("Her zamanki siparişimi ver") kullanıcı amacıyla eşleşir order_drink. Webhook'unuz eşleşen amacın yerine getirilmesini sağlar ve veritabanınızı user@gmail.com adlı satıcının normal sırası, kullanıcı yeni olduğu için henüz mevcut değil. İşleminiz daha sonra kullanıcıya ne sipariş etmek istediğini sorabilir.

3. Akış: Kullanıcının bilgileri mevcut değil ve kullanıcı farklı bir hesapla oturum açıyor

Sesle hesap oluşturmayı etkinleştirdiğiniz için Asistan, kullanıcıya bunu yapıp yapmadığını sorar aşağıdakilerden birini yapmak istiyor:

a) Google profil bilgilerini kullanarak sisteminizde yeni bir hesap oluşturabilir, Bu işlem sesle gerçekleştirilir

b) Sisteminizde farklı bir hesapla oturum açın

Bu durumda kullanıcı farklı bir hesapla oturum açmayı seçer ve standart OAuth akışını başlatır. Akış yalnızca ses özellikli bir cihazda başladıysa Google, yürütme işlemini bir telefona aktarır. Google daha sonra açar kullanıcının tarayıcısındaki yetkilendirme uç noktanız ve kullanıcı, hizmetinizde oturum açıp açmayacağını seçebilir: Google ile Oturum Açma özelliğini kullanmayan mevcut bir hesap veya b) yeni bir hesap oluşturma farklı bir sağlayıcı kullanabilirsiniz. OAuth akışı hakkında daha fazla bilgi için bkz. OAuth bağlantı oluşturma kavram kılavuzu.

Kullanıcının kimlik bilgilerini doğruladıktan sonra hizmetiniz bir erişim jetonu döndürür ve Google'a bir yenileme jetonu gönderilir. İşleminizdeki kullanıcının kimliği bağlandı Google dışı bir hesaba bağlayabilirsiniz. Kullanıcının orijinal isteği ("Her zamanki siparişimi ver") eşleşiyor kullanıcı niyeti order_drink. Webhook'unuz şunun sağlanmasını gerçekleştirir: eşleşen amacı arar ve veritabanınızı user@gmail.com'ın normal sırasına göre sorgular. Kullanıcı yeni olduğu için henüz mevcut değil. İşleminiz daha sonra sipariş etmek istediklerini söyleyebilir veya her zamanki siparişlerini yapılandırmalarını isteyebilirsiniz.

Sesli hesap oluşturma özelliğiyle akış devre dışı bırakıldı

Bu bölümde, devre dışı bıraktığınızda oluşabilecek hesap bağlama akışı açıklanmaktadır. Sesle hesap oluşturma.

4. Akış: Kullanıcının bilgileri mevcut değil

Sesle hesap oluşturma özelliğini etkinleştirmediniz ve kullanıcı, yapılandırarak standart OAuth akışı başlar. Asistan, yetkilendirme uç noktası (akış yalnızca ses modunda başladıysa) cihaza aktarırsa Google, yürütmeyi ekranı olan bir cihaza aktarır. Kullanıcı a) Kendisi kaydolmuşsa farklı bir sağlayıcıyla oturum açmayı seçebilir farklı bir hesap kullanarak veya b) yeni bir hesap oluşturarak başka bir sağlayıcı kullanabilirsiniz. OAuth akışı hakkında daha fazla bilgi için bkz. OAuth bağlantı oluşturma kavram kılavuzu.

Kullanıcının kimlik bilgilerini doğruladıktan sonra hizmetiniz bir erişim jetonu döndürür ve Google'a bir yenileme jetonu gönderilir. İşleminizdeki kullanıcının kimliği bağlandı Google dışı bir hesaba bağlayabilirsiniz. Kullanıcının orijinal isteği ("Her zamanki siparişimi ver") eşleşiyor kullanıcı niyeti order_drink. Webhook'unuz şunun sağlanmasını gerçekleştirir: eşleşen amacı arar ve veritabanınızı user@gmail.com'ın normal sırasına göre sorgular. Kullanıcı yeni olduğu için henüz mevcut değil. İşleminiz daha sonra ayarlamak için kullanıcının her zamanki sıralamasını ayarlar.