Panduan konsep Login dengan Google

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

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

  • Anda tidak memiliki sistem autentikasi dan/atau Anda berharap semua pengguna memiliki Akun Google. Misalnya, jika Action Anda secara khusus menargetkan Asisten, Anda dapat memperkirakan semua pengguna memiliki akun Google.
  • Anda sudah memiliki sistem autentikasi dan hanya ingin menautkan pengguna yang login ke sistem menggunakan Akun Google mereka.

Untuk memverifikasi bahwa GSI adalah solusi yang tepat bagi Anda, lihat halaman Memilih 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 foto profil mereka). 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 terverifikasi.

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

  • Scene sistem penautan akun: Scene yang telah ditetapkan yang menerapkan alur konfirmasi untuk penautan akun, dan dapat disesuaikan agar sesuai dengan kasus penggunaan tertentu.

Cara kerjanya

Alur dasar untuk GSI adalah sebagai berikut:

  1. Action Anda meminta izin kepada pengguna untuk mengakses profil Google-nya.
  2. Setelah pengguna memberikan izin, Action Anda akan menerima token ID Google yang berisi informasi profil Google pengguna.
  3. Lakukan validasi dan dekode token untuk membaca konten profil. Jika Anda menggunakan library Actions on Google Fulfillment untuk Node.js, library ini akan memvalidasi dan mendekode token untuk Anda.
  4. Action Anda menggunakan token ini untuk memeriksa apakah informasi profil Google pengguna ada di sistem Anda.

    1. Jika ya, berarti pengguna telah login ke sistem dengan Akun Google mereka. Pengguna dapat melanjutkan percakapan dengan Asisten dengan identitasnya yang ditautkan ke Akun Google.
    2. Jika tidak, pengguna dapat membuat akun baru di sistem Anda dengan informasi yang terdapat dalam 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 di sistem Anda

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

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

Setelah pengguna memberikan izin, Asisten akan mengirimkan permintaan yang berisi informasi profil untuk user@gmail.com. Dalam hal ini, informasi yang ada dalam token ID Google untuk user@gmail.com cocok dengan akun di sistem Anda, sehingga identitas pengguna di Action Anda otomatis ditautkan ke akun tersebut. Webhook Anda kemudian dapat membaca urutan yang biasa dilakukan pengguna dari database dan memberikan respons yang sesuai.

Alur 2: Informasi pengguna tidak ada di sistem Anda

Diagram berikut menunjukkan alur menyeluruh yang terjadi pada GSI saat informasi pengguna tidak ada dalam sistem Anda:

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

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

Dalam hal ini, pengguna tidak memiliki urutan biasa karena baru menggunakan layanan ini, sehingga Action Anda akan menanyakan apa yang ingin mereka pesan. Anda juga dapat bertanya kepada pengguna apakah mereka ingin menetapkan pesanan terbarunya seperti urutan biasa.