Google ile Oturum Açma kavram kılavuzu

Asistan için Google ile Oturum Açma (GSI), kullanıcılar için en sorunsuz bağlantı deneyimini sağlar ve geliştiricilerin uygulaması en kolay akıştır. GSI ile İşleminiz görüşme sırasında kullanıcınızın Google profiline erişim izni isteyebilir ve kullanıcı izin verirse kullanıcının adını, e-posta adresini ve profil resmini alabilir. İşleminiz daha sonra kullanıcının sisteminizde bir Google hesabı olup olmadığını kontrol etmek için bu bilgileri kullanabilir. Aksi takdirde İşleminiz kullanıcıya, Google profil bilgilerine göre sisteminizde yeni bir hesap oluşturmak isteyip istemediğini sorar.

GSI, aşağıdakilerden herhangi birinin geçerli olduğu durumlarda önerilen hesap bağlama çözümüdür:

  • Mevcut bir kimlik doğrulama sisteminiz yoktur ve/veya tüm kullanıcılarınızın bir Google Hesabı olmasını bekliyorsanız. Örneğin, İşleminiz özellikle Asistan'ı hedefliyorsa tüm kullanıcılarınızın Google Hesabı olmasını bekleyebilirsiniz.
  • Mevcut bir kimlik doğrulama sisteminiz var ve yalnızca Google hesaplarını kullanarak sisteminizde oturum açan kullanıcıları bağlamak istiyorsunuz.

GSI'nın sizin için doğru çözüm olduğunu doğrulamak için Hesap bağlama türünüzü seçin sayfasını inceleyin.

Anahtar terimler

GSI'nın işleyiş şekli hakkında bilgi edinmeden önce aşağıdaki terimlerle ilgili bilgi edinin:

  • Google kimlik jetonu: Kullanıcının temel Google profil bilgilerini (ad, e-posta adresi ve profil resmi) içeren, kullanıcı kimliğinin imzalı bir onayı. Google kimlik jetonu, JSON Web Jetonu'dur (JWT).

    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: Mevcut oturumda doğrulanmış bir kullanıcı olup olmadığını göstermek için sistem tarafından ayarlanan mülk.

  • user.accountLinkingStatus: Geçerli oturumdaki kullanıcının bağlı bir kimliğine sahip olup olmadığını belirtmek için sistem tarafından ayarlanan özellik.

  • Hesap bağlama sistemi sahnesi: Hesap bağlama için onay akışını uygulayan ve belirli kullanım alanlarına uyacak şekilde özelleştirilebilen önceden tanımlanmış bir düzen.

İşleyiş şekli

GSI için temel akış aşağıdaki gibidir:

  1. İşleminiz kullanıcıdan Google profiline erişmek için izin istiyor.
  2. Kullanıcı izin verdikten sonra İşleminiz, kullanıcının Google profil bilgilerini içeren bir Google kimliği jetonu alır.
  3. Profil içeriğini okumak için jetonu doğrulayın ve kodunu çözün. Node.js için Actions on Google Fulfillment kitaplığını kullanırsanız jetonu sizin için doğrular ve kodunu çözer.
  4. İşleminiz kullanıcının Google profili bilgilerinin sisteminizde mevcut olup olmadığını kontrol etmek için bu jetonu kullanıyor.

    1. Bu durumda kullanıcı, Google hesabıyla sisteminizde zaten oturum açmıştır. Kullanıcı, Google hesabına bağlı kimliğini kullanarak Asistan'la görüşmeye devam edebilir.
    2. Aksi takdirde kullanıcı, Google kimliği jetonunda bulunan bilgilerle sisteminizde yeni bir hesap oluşturabilir. Kullanıcı bunun ardından yeni hesabını bağlayarak Asistan'la görüşmeye devam edebilir.

Google ile Oturum Açma akışları

Bu bölümde, Google ile Oturum Açma ile oluşabilecek çeşitli akışlar açıklanmaktadır.

1. Akış: Sisteminizde kullanıcı bilgileri var

Aşağıdaki şemada, kullanıcının bilgileri sisteminizde zaten mevcut olduğunda GSI ile gerçekleşen uçtan uca akış gösterilmektedir:

Bu durumda, hesap bağlama sistemi düzenine geçer ve özelleştirilmiş bir gerekçe sunarsınız. Bu düzende Google profil bilgilerine erişmek için kullanıcıdan izin istenir.

Kullanıcı izin verdikten sonra Asistan, user@gmail.com adlı çocuğun profil bilgilerini içeren bir istek gönderir. Bu durumda, user@gmail.com için Google kimliği jetonunda bulunan bilgiler sisteminizdeki bir hesapla eşleşir. Böylece kullanıcının İşleminizdeki kimliği otomatik olarak bu hesaba bağlanır. Daha sonra webhook'unuz kullanıcının veritabanından normal sırasını okuyup yanıt verebilir.

2. Akış: Sisteminizde kullanıcı bilgileri yok

Aşağıdaki şemada, kullanıcının bilgileri sisteminizde olmadığında GSI ile gerçekleşen uçtan uca akış gösterilmektedir:

Bu durumda, user@gmail.com için Google kimliği jetonunda bulunan bilgiler sisteminizdeki bir hesapla eşleşmediğinden Asistan, kullanıcıya yeni bir hesap oluşturmak isteyip istemediğini sorar. Kullanıcı, hesap oluşturma işlemini filtrelenmiş bir cihaza aktarmak yerine sesle tamamlayabilir.

Kullanıcı hesap oluşturmayı kabul ettiğinde hizmetiniz, kullanıcı için hesap oluşturmak amacıyla kimlik jetonundaki bilgileri (kullanıcının adı ve e-posta adresi) kullanır. Hesap oluşturulduktan sonra kullanıcının İşleminizdeki kimliği yeni Google hesabına bağlanır.

Bu durumda, kullanıcının hizmette yeni olduğu için kullanıcının olağan bir siparişi yoktur. Bu nedenle İşleminiz ne sipariş etmek istediğini sorar. Ayrıca, kullanıcıya en son siparişini her zamanki gibi ayarlamak isteyip istemediğini de sorabilirsiniz.