OAuth ve Google ile Oturum Açma 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.
Herhangi bir güvenlik açığı varsa OAuth ve Google ile Oturum Açma, ö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.
OAuth ve Google ile Oturum Açma'nın sizin için doğru çözüm olduğunu doğrulamak üzere Hesap bağlama türü sayfanızı seçin.
Anahtar terimler
OAuth ve Google ile Oturum Açma'nın 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"
}
- Hesapta oturum açma yardımcı amacı: İstemek için çağırdığınız yardımcı amacı
bir hesap bağlama akışı bulunuyor. Daha fazla bilgi için bkz.
Hesapta Oturum Açma.
- Bağlam dizesi: Hesaba eklediğiniz özelleştirilmiş bir dize kullanıcıya neden bağlantı oluşturmak istediğinizi söyleyen oturum açma yardımcı amacı giriş yapmış olabilir.
- Yetkilendirme kodu akışı: ile uygulayabileceğiniz bir OAuth 2.0 akışı
OAuth + Google'da Oturum Açma. 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.
:
- 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.
- 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ışı: OAuth + Google'da Oturum Açma. 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 İş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
OAuth ve Google ile Oturum Açma bağlantı türünü kullanmak için aşağıdakilere ihtiyacınız vardır:
- OAuth 2 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
veintent=create
parametrelerini .
İşleyiş şekli
Bu bölümde OAuth ve Google ile Oturum Açma için genel akış açıklanmaktadır. Aşağıdaki OAuth ve GSI 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:
- İşleminiz kullanıcıdan Google profiline erişmek için izin istiyor.
- 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.
- Profil içeriğini okumak için jetonu doğrulamanız ve kodunu çözmeniz gerekir.
- İşleminiz, kullanıcının Google profilinin
tespit edebilirsiniz.
- 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ı, Asistan'ın hesabı bağlıyken.
- Yoksa 5. adıma bakın.
- 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.
- 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.)
- Kullanıcı artık telefonunu kullanarak Asistan'la görüşmeye devam edebilir hesap bağlandı.
OAuth ve GSI akışları
Bu bölümde, OAuth ve GSI ile oluşabilecek çeşitli akışlar açıklanmaktadır. Bu diyagramlar, yetkilendirme kodu akışında gerçekleşen akışları açıklar. yerine dolaylı kod akışı yerine Dialogflow'u kullandığınızı İşleminiz için doğal dil anlama çözümü.
Her akış, kullanıcı İşleminizi çağırdıktan sonra şu genel adımları içerir:
Yukarıdaki akışta actions.intent.SIGN_IN
yardımcı niyetini
bağlam dizesi olabilir. Bu niyette 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.
özel 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
yardımcı olabilir.
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")
şu özel niyetle 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 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
özel amaç 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 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
özel amaç 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.