Penautan Identitas - OAuth 2.0

Untuk mengaktifkan sesi pengguna yang lancar (misalnya, mengakses manfaat program loyalitas, penawaran yang dipersonalisasi) dan checkout yang diautentikasi, Anda harus menerapkan kemampuan Penautan Identitas menggunakan OAuth 2.0. Jika Anda tidak menerapkan penautan identitas, Anda harus mendukung checkout tamu.

Konsultasikan dengan tim hukum Anda jika ada pertanyaan terkait peraturan privasi dan praktik izin.

Persyaratan Inti

  • Protokol: Terapkan alur Kode Otorisasi OAuth 2.0 (RFC 6749 2.3.1).
  • Autentikasi Klien: Harus mendukung Autentikasi Dasar HTTP (client_secret_basic) di Endpoint Token.
  • Cakupan: Anda harus mendukung cakupan UCP standar yang ditentukan di bagian ini.
  • Penemuan: Anda harus menghosting file metadata di /.well-known/oauth-authorization-server (RFC 8414) agar Platform dapat menemukan endpoint Anda.

Cakupan

Anda harus menerapkan cakupan berikut, yang memberikan izin untuk semua operasi siklus proses checkout (Dapatkan, Buat, Perbarui, Hapus, Batalkan, Selesaikan).

  • Nama Cakupan: ucp:scopes:checkout_session

Pengalaman Pengguna: Anda harus menampilkan cakupan yang diminta sebagai satu layar izin yang digabungkan (misalnya, "Izinkan Google mengelola sesi checkout Anda"), bukan tombol teknis terperinci.

Penautan yang Disederhanakan Google

Penautan yang Disederhanakan Google adalah tambahan opsional untuk OAuth 2.0 standar. Fitur ini memanfaatkan pernyataan JWT untuk menggabungkan pemeriksaan niat dan pertukaran token di endpoint token OAuth 2.0 (niat check, create, get).

Penautan yang Disederhanakan Google direkomendasikan untuk pengalaman pengguna yang lancar. Fitur ini memungkinkan pengguna menautkan akun atau membuat akun baru menggunakan profil Google mereka tanpa keluar dari antarmuka Google. Karena alur terjadi sepenuhnya dalam UI Google, frontend penautan tidak diperlukan. Hal ini mengurangi overhead pengembangan, menghilangkan pengalihan browser, dan dapat meningkatkan rasio konversi.

Metadata Server Otorisasi (Contoh JSON)

Anda harus memublikasikan objek JSON ini di https://[your-domain]/.well-known/oauth-authorization-server

Contoh:

{
  "issuer": "https://merchant.example.com",
  "authorization_endpoint": "https://merchant.example.com/oauth2/authorize",
  "token_endpoint": "https://merchant.example.com/oauth2/token",
  "revocation_endpoint": "https://merchant.example.com/oauth2/revoke",
  "scopes_supported": [
    "ucp:scopes:checkout_session"
  ],
  "response_types_supported": [
    "code"
  ],
  "grant_types_supported": [
    "authorization_code",
    "refresh_token"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic"
  ],
  "service_documentation": "https://merchant.example.com/docs/oauth2"
}