Library JavaScript Otorisasi Pihak Ketiga Google untuk situs - Referensi API

Referensi ini menjelaskan Google 3P Authorization JavaScript Library API, yang dapat Anda gunakan untuk memuat kode otorisasi atau mengakses token dari Google.

Metode: google.accounts.oauth2.initCodeClient

Metode initCodeClient melakukan inisialisasi dan menampilkan klien kode, dengan konfigurasi di parameter.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

Jenis data: CodeClientConfig

Tabel berikut mencantumkan properti jenis data CodeClientConfig.

Properti
client_id Wajib. Client ID untuk aplikasi Anda. Anda dapat menemukan nilai ini di Konsol API.
scope Wajib. Daftar cakupan yang dipisahkan spasi dan mengidentifikasi resource yang dapat diakses aplikasi Anda atas nama pengguna. Nilai ini menentukan layar izin yang ditampilkan Google kepada pengguna.
include_granted_scopes Opsional, ditetapkan secara default ke true. Memungkinkan aplikasi menggunakan inkremental otorisasi untuk meminta akses ke cakupan tambahan sesuai konteks. Jika Anda menetapkan nilai parameter ini ke false dan permintaan otorisasi akan diberikan, lalu token akses baru hanya akan mencakup cakupan apa pun yang diminta scope di CodeClientConfig ini.
redirect_uri Diperlukan untuk UX pengalihan. Menentukan tempat server API mengalihkan pengguna setelah pengguna menyelesaikan alur otorisasi. Nilai harus sama persis dengan salah satu URI pengalihan yang diberi otorisasi untuk klien OAuth 2.0, yang Anda konfigurasi di Konsol API dan harus sesuai dengan Aturan validasi URI Pengalihan kami. Properti akan diabaikan oleh UX pop-up.
callback Diperlukan untuk UX pop-up. Fungsi JavaScript yang menangani respons kode yang ditampilkan. Properti ini akan diabaikan oleh UX pengalihan.
state Opsional. Direkomendasikan untuk UX pengalihan. Menentukan nilai string yang digunakan aplikasi untuk mempertahankan status antara permintaan otorisasi dan respons server otorisasi.
enable_granular_consent Opsional, ditetapkan secara default ke true. Jika ditetapkan ke false, izin Akun Google yang lebih terperinci akan dinonaktifkan untuk client ID OAuth yang dibuat sebelum 2019. Jika enable_granular_consent dan enable_serial_consent disetel, hanya enable_granular_consent nilai tersebut akan diterapkan dan nilai enable_serial_consent akan diabaikan.

Tidak berlaku untuk client ID OAuth yang lebih baru, karena izin yang lebih terperinci selalu diaktifkan untuk ID tersebut.
enable_serial_consent Tidak digunakan lagi, sebagai gantinya Anda harus menggunakan enable_granular_consent. Ini memiliki efek yang sama dengan enable_granular_consent. Aplikasi yang ada yang menggunakan enable_serial_consent dapat terus melakukannya, tetapi Anda sebaiknya perbarui kode Anda untuk menggunakan enable_granular_consent di update aplikasi Anda berikutnya.
login_hint Opsional. Jika aplikasi Anda mengetahui pengguna mana yang harus mengizinkan permintaan tersebut, aplikasi dapat menggunakan properti ini untuk memberikan petunjuk login ke Google. Jika berhasil, pemilihan akun akan dilewati. Nilai kolom sub alamat email atau token ID untuk pengguna target. Untuk informasi selengkapnya, lihat kolom login_hint dalam dokumentasi OpenID Connect.
hd Opsional. Jika aplikasi Anda mengetahui domain Workspace milik pengguna, gunakan domain ini untuk memberikan petunjuk kepada Google. Jika berhasil, akun pengguna akan dibatasi ke atau telah dipilih sebelumnya untuk domain yang disediakan. Untuk informasi selengkapnya, lihat kolom hd dalam dokumentasi OpenID Connect.
ux_mode Opsional. Mode UX yang akan digunakan untuk alur otorisasi. Secara default, tindakan ini akan membuka alur izin di pop-up. Nilai yang valid adalah popup dan redirect.
select_account Opsional, ditetapkan secara default ke 'false'. Nilai Boolean untuk meminta pengguna memilih akun.
error_callback Opsional. Fungsi JavaScript yang menangani beberapa error non-OAuth, seperti jendela pop-up gagal dibuka; atau ditutup sebelum respons OAuth dikembalikan.

Kolom `type` di parameter input memberikan alasan mendetail.
  • popup_failed_to_open Jendela pop-up gagal dibuka.
  • popup_closed Jendela pop-up ditutup sebelum OAuth ditampilkan.
  • Placeholder tidak diketahui untuk error lainnya.

Jenis data: CodeClient

Class ini hanya memiliki satu requestCode metode publik, yang memulai OAuth 2.0 Alur kode UX.

interface CodeClient {
  requestCode(): void;
}

Jenis data: CodeResponse

Objek JavaScript CodeResponse akan diteruskan ke metode callback Anda di UX pop-up. Di UX pengalihan, CodeResponse akan diteruskan sebagai URL parameter.

Tabel berikut mencantumkan properti jenis data CodeResponse.

Properti
code Kode otorisasi respons token yang berhasil.
scope Daftar cakupan yang dipisahkan spasi yang disetujui oleh pengguna.
state Nilai string yang digunakan aplikasi Anda untuk mempertahankan status antara permintaan otorisasi dan respons.
error Satu kode error ASCII.
error_description Teks ASCII yang dapat dibaca manusia memberikan informasi tambahan, digunakan untuk membantu developer klien memahami {i>error<i} yang terjadi.
error_uri URI yang mengidentifikasi halaman web yang dapat dibaca manusia dengan informasi tentang error, yang digunakan untuk memberikan informasi tambahan tentang error tersebut kepada developer klien.

Metode: google.accounts.oauth2.initTokenClient

Metode initTokenClient melakukan inisialisasi dan menampilkan klien token, dengan konfigurasi di parameter.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

Jenis data: TokenClientConfig

Tabel berikut mencantumkan properti jenis data TokenClientConfig.

Properti
client_id Wajib. Client ID untuk aplikasi Anda. Anda dapat menemukan nilai ini di Konsol API.
callback Wajib. Fungsi JavaScript yang menangani respons token yang ditampilkan.
scope Wajib. Daftar cakupan yang dipisahkan spasi dan mengidentifikasi resource yang dapat diakses aplikasi Anda atas nama pengguna. Nilai ini menentukan layar izin yang ditampilkan Google kepada pengguna.
include_granted_scopes Opsional, ditetapkan secara default ke true. Memungkinkan aplikasi menggunakan inkremental otorisasi untuk meminta akses ke cakupan tambahan sesuai konteks. Jika Anda menetapkan nilai parameter ini ke false dan permintaan otorisasi akan diberikan, lalu token akses baru hanya akan mencakup cakupan apa pun yang diminta scope di TokenClientConfig ini.
prompt Opsional, ditetapkan secara default ke 'select_account'. Dipisahkan spasi, daftar perintah yang peka huruf besar/kecil untuk ditampilkan kepada pengguna. Nilai yang dimasukkan adalah:
  • string kosong Pengguna hanya akan diminta saat pertama kali aplikasi meminta akses. Tidak dapat ditentukan dengan nilai lain.
  • 'none' Jangan tampilkan layar autentikasi atau izin apa pun. Tidak boleh ditentukan dengan nilai lain.
  • 'consent' Minta pengguna untuk memberikan izin.
  • 'select_account' Minta pengguna untuk memilih akun.
enable_granular_consent Opsional, ditetapkan secara default ke true. Jika ditetapkan ke false, izin Akun Google yang lebih terperinci akan dinonaktifkan untuk client ID OAuth yang dibuat sebelum 2019. Jika enable_granular_consent dan enable_serial_consent disetel, hanya enable_granular_consent nilai tersebut akan diterapkan dan nilai enable_serial_consent akan diabaikan.

Tidak berlaku untuk client ID OAuth yang lebih baru, karena izin yang lebih terperinci selalu diaktifkan untuk ID tersebut.
enable_serial_consent Tidak digunakan lagi, sebagai gantinya Anda harus menggunakan enable_granular_consent. Ini memiliki efek yang sama dengan enable_granular_consent. Aplikasi yang ada yang menggunakan enable_serial_consent dapat terus melakukannya, tetapi Anda sebaiknya perbarui kode Anda untuk menggunakan enable_granular_consent di update aplikasi Anda berikutnya.
login_hint Opsional. Jika aplikasi Anda mengetahui pengguna mana yang harus mengizinkan permintaan tersebut, aplikasi dapat menggunakan properti ini untuk memberikan petunjuk login ke Google. Jika berhasil, pemilihan akun akan dilewati. Nilai kolom sub alamat email atau token ID untuk pengguna target. Untuk informasi selengkapnya, lihat kolom login_hint dalam dokumentasi OpenID Connect.
hd Opsional. Jika aplikasi Anda mengetahui domain Workspace milik pengguna, gunakan domain ini untuk memberikan petunjuk kepada Google. Jika berhasil, akun pengguna akan dibatasi ke atau telah dipilih sebelumnya untuk domain yang disediakan. Untuk informasi selengkapnya, lihat kolom hd dalam dokumentasi OpenID Connect.
state Opsional. Tidak direkomendasikan. Menentukan nilai string yang digunakan aplikasi untuk mempertahankan status antara permintaan otorisasi dan respons server otorisasi.
error_callback Opsional. Fungsi JavaScript yang menangani beberapa error non-OAuth, seperti jendela pop-up gagal dibuka; atau ditutup sebelum respons OAuth dikembalikan.

Kolom `type` di parameter input memberikan alasan mendetail.
  • popup_failed_to_open Jendela pop-up gagal dibuka.
  • popup_closed Jendela pop-up ditutup sebelum OAuth ditampilkan.
  • Placeholder tidak diketahui untuk error lainnya.

Jenis data: TokenClient

Class ini hanya memiliki satu metode publik requestAccessToken, yang memulai atribut Alur UX Token OAuth 2.0.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Argumen
overrideConfig OverridableTokenClientConfig Opsional. Konfigurasi yang akan diganti dalam metode ini.

Jenis data: OverridableTokenClientConfig

Tabel berikut mencantumkan properti OverridableTokenClientConfig tipe data.

Properti
scope Opsional. Daftar cakupan yang dipisahkan spasi yang mengidentifikasi resource yang dapat diakses oleh aplikasi Anda atas nama pengguna. Nilai-nilai ini memberi tahu layar izin yang ditampilkan Google kepada pengguna.
include_granted_scopes Opsional, ditetapkan secara default ke true. Memungkinkan aplikasi menggunakan inkremental otorisasi untuk meminta akses ke cakupan tambahan sesuai konteks. Jika Anda menetapkan nilai parameter ini ke false dan permintaan otorisasi akan diberikan, lalu token akses baru hanya akan mencakup cakupan apa pun yang diminta scope di OverridableTokenClientConfig ini.
prompt Opsional. Daftar perintah yang dipisahkan spasi dan peka huruf besar/kecil untuk ditampilkan kepada pengguna.
enable_granular_consent Opsional, ditetapkan secara default ke true. Jika ditetapkan ke false, izin Akun Google yang lebih terperinci akan dinonaktifkan untuk client ID OAuth yang dibuat sebelum 2019.Jika enable_granular_consent dan enable_serial_consent ditetapkan, hanya enable_granular_consent nilai tersebut akan diterapkan dan nilai enable_serial_consent akan diabaikan.

Tidak berlaku untuk client ID OAuth yang lebih baru, karena izin yang lebih terperinci selalu diaktifkan untuk ID tersebut.
enable_serial_consent Tidak digunakan lagi, sebagai gantinya Anda harus menggunakan enable_granular_consent. Ini memiliki efek yang sama dengan enable_granular_consent. Aplikasi yang ada yang menggunakan enable_serial_consent dapat terus melakukannya, tetapi Anda sebaiknya perbarui kode Anda untuk menggunakan enable_granular_consent di update aplikasi Anda berikutnya.
login_hint Opsional. Jika aplikasi Anda mengetahui pengguna mana yang harus mengizinkan permintaan tersebut, aplikasi dapat menggunakan properti ini untuk memberikan petunjuk login ke Google. Jika berhasil, pemilihan akun akan dilewati. Nilai kolom sub alamat email atau token ID untuk pengguna target. Untuk informasi selengkapnya, lihat kolom login_hint dalam dokumentasi OpenID Connect.
state Opsional. Tidak direkomendasikan. Menentukan nilai string yang digunakan aplikasi untuk mempertahankan status antara permintaan otorisasi dan respons server otorisasi.

Jenis data: TokenResponse

Objek JavaScript TokenResponse akan diteruskan ke metode callback Anda di UX pop-up.

Tabel berikut mencantumkan properti jenis data TokenResponse.

Properti
access_token Token akses respons token yang berhasil.
expires_in Masa pakai token akses dalam hitungan detik.
hd Domain yang dihosting pengguna yang login.
prompt Nilai perintah yang digunakan dari kemungkinan daftar nilai yang ditentukan oleh TokenClientConfig atau OverridableTokenClientConfig.
token_type Jenis token yang diterbitkan.
scope Daftar cakupan yang dipisahkan spasi yang disetujui oleh pengguna.
state Nilai string yang digunakan aplikasi Anda untuk mempertahankan status antara permintaan otorisasi dan respons.
error Satu kode error ASCII.
error_description Teks ASCII yang dapat dibaca manusia memberikan informasi tambahan, yang digunakan untuk membantu developer klien memahami error yang terjadi.
error_uri URI yang mengidentifikasi halaman web yang dapat dibaca manusia dengan informasi tentang error, yang digunakan untuk memberikan informasi tambahan tentang error tersebut kepada developer klien.

Metode: google.accounts.oauth2.hasGrantedAllScopes

Memeriksa apakah pengguna memberikan semua cakupan atau cakupan yang ditentukan.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Argumen
tokenResponse TokenResponse Wajib. TokenResponse .
firstScope string Wajib. Cakupan yang akan diperiksa.
restScopes {i>string<i}[] Opsional. Cakupan lain untuk diperiksa.
Hasil
boolean True jika semua cakupan diberikan.

Metode: google.accounts.oauth2.hasGrantedAnyScope

Memeriksa apakah pengguna memberikan cakupan atau cakupan yang ditentukan.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Argumen
tokenResponse TokenResponse Wajib. TokenResponse .
firstScope string Wajib. Cakupan yang akan diperiksa.
restScopes {i>string<i}[] Opsional. Cakupan lain untuk diperiksa.
Hasil
boolean True jika salah satu cakupan diberikan.

Metode: google.accounts.oauth2.revoke

Metode revoke mencabut semua cakupan yang diberikan pengguna ke aplikasi. Token akses yang valid diperlukan untuk mencabut izin.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
Argumen
accessToken string Wajib. Token akses yang valid.
callback fungsi Opsional. RevocationResponse.

Jenis data: RevocationResponse

Objek JavaScript RevocationResponse akan diteruskan ke metode callback Anda.

Tabel berikut mencantumkan properti jenis data RevocationResponse.

Properti
successful Boolean. true aktif, false jika gagal.
error String. Tidak terdefinisi pada kesuksesan. Satu kode error ASCII. Hal ini mencakup, tetapi tidak terbatas pada OAuth standar Kode error 2.0. Error umum untuk metode revoke:
  • invalid_token - Token telah habis masa berlakunya atau dicabut sebelum metode revoke dipanggil. Pada umumnya, Anda dapat menganggap hibah yang terkait dengan accessToken dicabut.
  • invalid_request - Token tidak dapat dibatalkan. Anda harus memastikan accessToken adalah kredensial Google OAuth 2.0 yang valid.
error_description String. Tidak terdefinisi pada kesuksesan. Teks ASCII yang dapat dibaca manusia memberikan informasi tambahan tentang error. Developer dapat menggunakannya untuk lebih memahami error yang terjadi. String error_description hanya dalam bahasa Inggris. Untuk error umum yang tercantum dalam error, error_description yang sesuai:
  • invalid_token - Masa berlaku token telah habis atau dicabut.
  • invalid_request - Token tidak dapat dibatalkan.