Panduan konsep Login dengan Google

Login dengan Google (GSI) untuk Asisten memberikan penautan yang paling lancar pengalaman bagi pengguna dan merupakan alur yang paling mudah untuk diterapkan oleh pengembang. Dengan GSI, Action Anda dapat meminta akses ke profil Google pengguna selama percakapan dan, jika pengguna setuju, menerima nama pengguna, alamat email, dan foto profil Anda. Action Anda kemudian dapat menggunakan informasi ini untuk memeriksa apakah memiliki Akun Google di sistem Anda. Jika tidak, Action Anda akan menanyakan pengguna apakah mereka ingin membuat akun baru di sistem Anda berdasarkan informasi profil.

GSI adalah solusi penautan akun yang direkomendasikan jika salah satu hal berikut berlaku:

  • Anda belum memiliki sistem autentikasi dan/atau Anda mengharapkan semua pengguna untuk memiliki Akun Google. Misalnya, jika Action Anda secara khusus yang menargetkan Asisten, Anda dapat berharap semua pengguna memiliki menggunakan akun layanan.
  • Anda memiliki sistem otentikasi yang ada dan hanya ingin menautkan pengguna yang login ke sistem Anda menggunakan Akun Google mereka.

Untuk memverifikasi bahwa GSI adalah solusi yang tepat untuk Anda, lihat Halaman Pilih jenis penautan akun.

Istilah utama

Sebelum membaca cara kerja GSI, pahami persyaratan berikut:

  • Token ID Google: Pernyataan bertanda tangan tentang identitas pengguna yang berisi informasi profil Google dasar pengguna (nama, alamat email, dan gambar profil tertentu). Token ID Google adalah Token Web JSON (JWT).

    Berikut adalah contoh token yang didekode:

{
  "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: Properti yang ditetapkan oleh sistem untuk menunjukkan apakah sesi saat ini memiliki pengguna yang terverifikasi.

  • user.accountLinkingStatus: Properti yang ditetapkan oleh sistem untuk menunjukkan apakah pengguna di sesi saat ini memiliki identitas tertaut.

  • Adegan sistem penautan akun: Adegan standar yang menerapkan konfirmasi untuk penautan akun, dan dapat disesuaikan agar cocok dengan kasus penggunaan tertentu.

Cara kerjanya

Alur dasar untuk GSI adalah sebagai berikut:

  1. Action Anda meminta izin kepada pengguna untuk mengakses profil Google miliknya.
  2. Setelah pengguna memberikan izin, Action Anda akan menerima token ID Google yang berisi informasi profil Google pengguna.
  3. Validasi dan dekode token untuk membaca konten profil. Jika Anda menggunakan Library Actions on Google Fulfillment untuk Node.js, ia akan memvalidasi dan memecahkan kode token tersebut.
  4. Action Anda menggunakan token ini untuk memeriksa apakah profil Google pengguna informasi ada di dalam sistem.

    1. Jika ya, pengguna telah masuk ke sistem Anda dengan Akun Google. Pengguna dapat melanjutkan percakapan dengan Asisten dengan identitas mereka yang ditautkan ke Akun Google mereka.
    2. Jika tidak, pengguna dapat membuat akun baru di sistem Anda dengan informasi yang terkandung di token ID Google. Kemudian pengguna dapat melanjutkan percakapan dengan Asisten dengan menautkan akun barunya.

Alur Login dengan Google

Bagian ini menjelaskan berbagai alur yang dapat terjadi dengan Login dengan Google.

Alur 1: Informasi pengguna ada dalam sistem Anda

Diagram berikut menunjukkan alur end-to-end yang terjadi pada GSI saat informasi pengguna sudah ada di sistem Anda:

Dalam hal ini, Anda beralih ke adegan sistem penautan akun dan memberikan alasan yang disesuaikan. Adegan ini meminta izin kepada pengguna untuk mengakses informasi profil Google mereka.

Setelah pengguna memberikan izin, Asisten akan mengirimkan permintaan yang berisi informasi profil untuk user@gmail.com. Dalam kasus ini, informasi yang ada dalam token ID Google untuk user@gmail.com cocok dengan akun di sehingga identitas pengguna di Action Anda ditautkan secara otomatis ke akun tersebut. Kemudian, webhook Anda dapat membaca pesanan biasa pengguna dari {i>database<i} dan memberikan respons yang sesuai.

Alur 2: Informasi pengguna tidak ada di sistem Anda

Diagram berikut menunjukkan alur end-to-end yang terjadi dengan GSI saat informasi pengguna tidak ada di sistem Anda:

Dalam hal ini, informasi yang terkandung dalam token ID Google untuk user@gmail.com tidak cocok dengan akun di sistem Anda, jadi Asisten bertanya kepada pengguna apakah mereka ingin membuat akun baru. Pengguna dapat menyelesaikan proses pembuatan akun dengan suara daripada mentransfer ke perangkat yang disaring.

Jika pengguna setuju untuk membuat akun, layanan Anda akan menggunakan informasi tersebut di token ID (nama dan alamat email pengguna) untuk membuat akun bagi pengguna. Setelah akun dibuat, identitas pengguna di Action Anda ditautkan ke Akun Google baru mereka.

Dalam hal ini, pengguna tidak memiliki pesanan yang biasa karena mereka baru saja layanan, sehingga Action Anda menanyakan apa yang ingin mereka pesan. Anda dapat bertanya kepada pengguna apakah mereka ingin mengatur pesanan terakhir mereka seperti urutan mereka biasanya.