Dokumen ini menjelaskan cara menerapkan otorisasi OAuth 2.0 untuk mengakses YouTube Data API melalui aplikasi yang berjalan di perangkat seperti TV, konsol game, dan printer. Lebih khusus lagi, alur ini dirancang untuk perangkat yang tidak memiliki akses ke browser atau memiliki kemampuan input yang terbatas.
OAuth 2.0 memungkinkan pengguna berbagi data tertentu dengan aplikasi, sekaligus menjaga kerahasiaan nama pengguna, sandi, dan informasi mereka lainnya. Misalnya, aplikasi TV dapat menggunakan OAuth 2.0 untuk mendapatkan izin guna memilih file yang disimpan di Google Drive.
Karena aplikasi yang menggunakan alur ini didistribusikan ke perangkat individual, diasumsikan bahwa aplikasi tidak dapat menyimpan rahasia. Aplikasi tersebut dapat mengakses Google API saat pengguna berada di aplikasi atau saat aplikasi berjalan di latar belakang.
Alternatif
Jika Anda menulis aplikasi untuk platform seperti Android, iOS, macOS, Linux, atau Windows (termasuk Universal Windows Platform), yang memiliki akses ke browser dan kemampuan input penuh, gunakan alur OAuth 2.0 untuk aplikasi seluler dan desktop. (Anda harus menggunakan alur tersebut meskipun aplikasi Anda adalah alat command line tanpa antarmuka grafis.)
Jika Anda hanya ingin membuat pengguna login dengan Akun Google mereka dan menggunakan token ID JWT untuk mendapatkan informasi profil pengguna dasar, lihat Login di TV dan Perangkat dengan Input Terbatas.
Prasyarat
Aktifkan API untuk project Anda
Setiap aplikasi yang memanggil Google API harus mengaktifkan API tersebut di API Console.
Untuk mengaktifkan API untuk project Anda:
- Open the API Library di Google API Console.
- If prompted, select a project, or create a new one.
- Gunakan halaman Library untuk menemukan dan mengaktifkan YouTube Data API. Temukan API lain yang akan digunakan aplikasi Anda dan aktifkan juga API tersebut.
Membuat kredensial otorisasi
Setiap aplikasi yang menggunakan OAuth 2.0 untuk mengakses Google API harus memiliki kredensial otorisasi yang mengidentifikasi aplikasi ke server OAuth 2.0 Google. Langkah-langkah berikut menjelaskan cara membuat kredensial untuk project Anda. Aplikasi Anda kemudian dapat menggunakan kredensial untuk mengakses API yang telah Anda aktifkan untuk project tersebut.
- Go to the Credentials page.
- Klik Buat Klien.
- Pilih jenis aplikasi TV dan Perangkat Input Terbatas.
- Beri nama klien OAuth 2.0 Anda, lalu klik Buat.
Mengidentifikasi cakupan akses
Cakupan memungkinkan aplikasi Anda hanya meminta akses ke resource yang diperlukan sekaligus memungkinkan pengguna mengontrol jumlah akses yang mereka berikan ke aplikasi Anda. Oleh karena itu, mungkin ada hubungan terbalik antara jumlah cakupan yang diminta dan kemungkinan mendapatkan izin pengguna.
Sebelum mulai menerapkan otorisasi OAuth 2.0, sebaiknya Anda mengidentifikasi cakupan yang izin aksesnya akan diperlukan oleh aplikasi Anda.
YouTube Data API v3 menggunakan cakupan berikut:
Cakupan | Deskripsi |
---|---|
https://www. |
Mengelola akun YouTube Anda |
https://www. |
Melihat daftar pelanggan yang saat ini aktif di channel Anda, level mereka saat ini, dan kapan mereka menjadi pelanggan |
https://www. |
Melihat, mengedit, dan secara permanen menghapus video, rating, komentar, dan teks YouTube |
https://www. |
Melihat akun YouTube Anda |
https://www. |
Mengelola video YouTube Anda |
https://www. |
Melihat dan mengelola aset Anda dan konten terkait di YouTube |
https://www. |
Melihat informasi pribadi channel YouTube Anda yang relevan selama proses audit bersama partner YouTube |
Lihat daftar Cakupan yang diizinkan untuk aplikasi atau perangkat yang terinstal.
Mendapatkan token akses OAuth 2.0
Meskipun aplikasi Anda berjalan di perangkat dengan kemampuan input terbatas, pengguna harus memiliki akses terpisah ke perangkat dengan kemampuan input yang lebih kaya untuk menyelesaikan alur otorisasi ini. Alur ini memiliki langkah-langkah berikut:
- Aplikasi Anda mengirim permintaan ke server otorisasi Google yang mengidentifikasi cakupan yang akan diminta izin aksesnya oleh aplikasi Anda.
- Server merespons dengan beberapa informasi yang digunakan dalam langkah-langkah berikutnya, seperti kode perangkat dan kode pengguna.
- Anda menampilkan informasi yang dapat dimasukkan pengguna di perangkat terpisah untuk mengizinkan aplikasi Anda.
- Aplikasi Anda mulai melakukan polling server otorisasi Google untuk menentukan apakah pengguna telah mengizinkan aplikasi Anda.
- Pengguna beralih ke perangkat dengan kemampuan input yang lebih kaya, meluncurkan browser web, membuka URL yang ditampilkan di langkah 3 dan memasukkan kode yang juga ditampilkan di langkah 3. Pengguna kemudian dapat memberikan (atau menolak) akses ke aplikasi Anda.
- Respons berikutnya terhadap permintaan polling Anda berisi token yang dibutuhkan aplikasi Anda untuk mengizinkan permintaan atas nama pengguna. (Jika pengguna menolak akses ke aplikasi Anda, respons tidak berisi token.)
Gambar di bawah menggambarkan proses ini:
Bagian berikut menjelaskan langkah-langkah ini secara detail. Mengingat berbagai kemampuan dan lingkungan runtime yang mungkin dimiliki perangkat, contoh yang ditampilkan dalam dokumen ini menggunakan utilitas command line curl
. Contoh ini harus mudah di-porting ke berbagai bahasa dan runtime.
Langkah 1: Minta kode perangkat dan pengguna
Pada langkah ini, perangkat Anda mengirimkan permintaan HTTP POST ke server otorisasi Google, di
https://oauth2.googleapis.com/device/code
, yang mengidentifikasi aplikasi Anda
serta cakupan akses yang ingin diakses aplikasi Anda atas nama pengguna.
Anda harus mengambil URL ini dari
Dokumen penemuan menggunakan
nilai metadata device_authorization_endpoint
. Sertakan parameter permintaan HTTP berikut:
Parameter | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_id |
Wajib
Client ID untuk aplikasi Anda. Anda dapat menemukan nilai ini di . |
||||||||||||||||
scope |
Wajib
Daftar cakupan yang dibatasi spasi yang mengidentifikasi resource yang dapat diakses aplikasi Anda atas nama pengguna. Nilai ini memberi tahu layar izin yang ditampilkan Google kepada pengguna. Lihat daftar Cakupan yang diizinkan untuk aplikasi atau perangkat yang terinstal. Cakupan memungkinkan aplikasi Anda hanya meminta akses ke resource yang dibutuhkan sekaligus memungkinkan pengguna mengontrol jumlah akses yang mereka berikan ke aplikasi Anda. Dengan demikian, ada hubungan terbalik antara jumlah cakupan yang diminta dan kemungkinan mendapatkan izin pengguna. YouTube Data API v3 menggunakan cakupan berikut:
Dokumen Cakupan API OAuth 2.0 memberikan daftar lengkap cakupan yang dapat Anda gunakan untuk mengakses Google API. |
Contoh
Cuplikan berikut menunjukkan contoh permintaan:
POST /device/code HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.force-ssl
Contoh ini menunjukkan perintah curl
untuk mengirim permintaan yang sama:
curl -d "client_id=client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.force-ssl" \ https://oauth2.googleapis.com/device/code
Langkah 2: Tangani respons server otorisasi
Server otorisasi akan menampilkan salah satu respons berikut:
Respons keberhasilan
Jika permintaan valid, respons Anda akan berupa objek JSON yang berisi properti berikut:
Properti | |
---|---|
device_code |
Nilai yang ditetapkan Google secara unik untuk mengidentifikasi perangkat yang menjalankan aplikasi yang meminta
otorisasi. Pengguna akan mengizinkan perangkat tersebut dari perangkat lain dengan kemampuan input yang lebih kaya. Misalnya, pengguna dapat menggunakan laptop atau ponsel untuk mengizinkan
aplikasi yang berjalan di TV. Dalam hal ini, device_code mengidentifikasi TV.
Kode ini memungkinkan perangkat yang menjalankan aplikasi menentukan secara aman apakah pengguna telah memberikan atau menolak akses. |
expires_in |
Durasi, dalam detik, saat device_code dan
user_code valid. Jika dalam waktu tersebut, pengguna tidak menyelesaikan alur
otorisasi dan perangkat Anda juga tidak melakukan polling untuk mengambil informasi tentang
keputusan pengguna, Anda mungkin perlu memulai ulang proses ini dari langkah 1. |
interval |
Durasi waktu, dalam detik, yang harus ditunggu perangkat Anda di antara permintaan polling. Misalnya, jika nilainya adalah 5 , perangkat Anda harus mengirim permintaan polling ke server otorisasi Google setiap lima detik. Lihat
langkah 3 untuk mengetahui detail selengkapnya. |
user_code |
Nilai peka huruf besar/kecil yang mengidentifikasi cakupan yang aksesnya diminta oleh aplikasi kepada Google. Antarmuka pengguna akan menginstruksikan pengguna untuk memasukkan nilai ini di perangkat terpisah dengan kemampuan input yang lebih kaya. Kemudian, Google menggunakan nilai tersebut untuk menampilkan kumpulan cakupan yang benar saat meminta pengguna memberikan akses ke aplikasi Anda. |
verification_url |
URL yang harus dibuka pengguna di perangkat terpisah untuk memasukkan
user_code dan memberikan atau menolak akses ke aplikasi Anda. Antarmuka pengguna Anda
juga akan menampilkan nilai ini. |
Cuplikan berikut menunjukkan contoh respons:
{ "device_code": "4/4-GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8", "user_code": "GQVQ-JKEC", "verification_url": "https://www.google.com/device", "expires_in": 1800, "interval": 5 }
Respons kuota terlampaui
Jika permintaan kode perangkat Anda telah melampaui kuota yang terkait dengan ID klien Anda, Anda akan menerima respons 403, yang berisi error berikut:
{ "error_code": "rate_limit_exceeded" }
Dalam hal ini, gunakan strategi backoff untuk mengurangi frekuensi permintaan.
Langkah 3: Tampilkan kode pengguna
Tampilkan verification_url
dan user_code
yang diperoleh pada langkah 2 kepada
pengguna. Kedua nilai dapat berisi karakter yang dapat dicetak dari set karakter US-ASCII. Konten
yang Anda tampilkan kepada pengguna harus menginstruksikan pengguna untuk membuka
verification_url
di perangkat terpisah dan memasukkan user_code
.
Rancang antarmuka pengguna (UI) Anda dengan mempertimbangkan aturan berikut:
user_code
user_code
harus ditampilkan di kolom yang dapat menangani 15 karakter berukuran 'W'. Dengan kata lain, jika Anda dapat menampilkan kodeWWWWWWWWWWWWWWW
dengan benar, UI Anda valid, dan sebaiknya gunakan nilai string tersebut saat menguji carauser_code
ditampilkan di UI Anda.user_code
peka huruf besar/kecil dan tidak boleh diubah dengan cara apa pun, seperti mengubah huruf besar/kecil atau menyisipkan karakter pemformatan lainnya.
verification_url
- Ruang tempat Anda menampilkan
verification_url
harus cukup lebar untuk menangani string URL yang panjangnya 40 karakter. - Anda tidak boleh mengubah
verification_url
dengan cara apa pun, kecuali untuk menghapus skema untuk ditampilkan. Jika Anda berencana menghapus skema (misalnya,https://
) dari URL untuk alasan tampilan, pastikan aplikasi Anda dapat menangani varianhttp
danhttps
.
- Ruang tempat Anda menampilkan
Langkah 4: Polling server otorisasi Google
Karena pengguna akan menggunakan perangkat terpisah untuk membuka verification_url
dan memberikan (atau menolak) akses, perangkat yang meminta tidak akan otomatis diberi tahu saat pengguna
menanggapi permintaan akses. Oleh karena itu, perangkat yang meminta perlu melakukan polling server otorisasi Google untuk menentukan kapan pengguna telah merespons permintaan.
Perangkat yang meminta harus terus mengirim permintaan polling hingga menerima respons
yang menunjukkan bahwa pengguna telah merespons permintaan akses atau hingga device_code
dan user_code
yang diperoleh pada
langkah 2 berakhir. interval
yang ditampilkan pada langkah 2 menentukan jumlah
waktu, dalam detik, untuk menunggu di antara permintaan.
URL endpoint yang akan di-polling adalah https://oauth2.googleapis.com/token
. Permintaan polling
berisi parameter berikut:
Parameter | |
---|---|
client_id |
Client ID untuk aplikasi Anda. Anda dapat menemukan nilai ini di . |
client_secret |
Rahasia klien untuk client_id yang diberikan. Anda dapat menemukan nilai ini di
. |
device_code |
device_code yang ditampilkan oleh server otorisasi di
langkah 2. |
grant_type |
Tetapkan nilai ini ke urn:ietf:params:oauth:grant-type:device_code . |
Contoh
Cuplikan berikut menunjukkan contoh permintaan:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=client_id& client_secret=client_secret& device_code=device_code& grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code
Contoh ini menunjukkan perintah curl
untuk mengirim permintaan yang sama:
curl -d "client_id=client_id&client_secret=client_secret& \ device_code=device_code& \ grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code" \ -H "Content-Type: application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/token
Langkah 5: Pengguna merespons permintaan akses
Gambar berikut menampilkan halaman yang serupa dengan yang dilihat pengguna saat mereka membuka
verification_url
yang Anda tampilkan di langkah 3:
Setelah memasukkan user_code
dan, jika belum login, login ke Google,
pengguna akan melihat layar izin seperti yang ditunjukkan di bawah:
Langkah 6: Menangani respons terhadap permintaan polling
Server otorisasi Google merespons setiap permintaan polling dengan salah satu respons berikut:
Akses diberikan
Jika pengguna memberikan akses ke perangkat (dengan mengklik Allow
di layar izin),
respons akan berisi token akses dan token refresh. Token ini memungkinkan perangkat Anda mengakses Google API atas nama pengguna. (Properti scope
dalam respons menentukan API mana yang dapat diakses
perangkat.)
Dalam hal ini, respons API berisi kolom berikut:
Kolom | |
---|---|
access_token |
Token yang dikirimkan aplikasi Anda untuk mengotorisasi permintaan Google API. |
expires_in |
Masa aktif token akses yang tersisa dalam detik. |
refresh_token |
Token yang dapat Anda gunakan untuk mendapatkan token akses baru. Token refresh valid hingga pengguna mencabut akses atau token refresh berakhir masa berlakunya. Perhatikan bahwa token refresh selalu ditampilkan untuk perangkat. |
refresh_token_expires_in |
Masa aktif token refresh yang tersisa dalam hitungan detik. Nilai ini hanya ditetapkan saat pengguna memberikan akses berbasis waktu. |
scope |
Cakupan akses yang diberikan oleh access_token dinyatakan sebagai daftar
string yang peka huruf besar/kecil dan dipisahkan spasi. |
token_type |
Jenis token yang ditampilkan. Saat ini, nilai kolom ini selalu ditetapkan ke
Bearer . |
Cuplikan berikut menunjukkan contoh respons:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email", "token_type": "Bearer", "refresh_token": "1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
Token akses memiliki masa berlaku terbatas. Jika aplikasi Anda memerlukan akses ke API dalam jangka waktu yang lama, aplikasi tersebut dapat menggunakan token refresh untuk mendapatkan token akses baru. Jika aplikasi Anda memerlukan jenis akses ini, aplikasi harus menyimpan token refresh untuk digunakan nanti.
Akses ditolak
Jika pengguna menolak memberikan akses ke perangkat, respons server akan memiliki
kode status respons HTTP 403
(Forbidden
). Respons berisi
error berikut:
{ "error": "access_denied", "error_description": "Forbidden" }
Otorisasi menunggu keputusan
Jika pengguna belum menyelesaikan alur otorisasi, server akan menampilkan
kode status respons HTTP 428
(Precondition Required
). Respons
berisi error berikut:
{ "error": "authorization_pending", "error_description": "Precondition Required" }
Polling terlalu sering
Jika perangkat mengirim permintaan polling terlalu sering, server akan menampilkan kode status respons HTTP 403
(Forbidden
). Respons berisi error berikut:
{ "error": "slow_down", "error_description": "Forbidden" }
Error lainnya
Server otorisasi juga menampilkan error jika permintaan polling tidak memiliki parameter yang diperlukan atau memiliki nilai parameter yang salah. Permintaan ini biasanya memiliki kode status respons HTTP 400
(Bad Request
) atau 401
(Unauthorized
). Error tersebut mencakup:
Error | Kode Status HTTP | Deskripsi |
---|---|---|
admin_policy_enforced |
400 |
Akun Google tidak dapat mengizinkan satu atau beberapa cakupan yang diminta karena kebijakan administrator Google Workspace-nya. Lihat artikel bantuan Admin Google Workspace Mengontrol aplikasi pihak ketiga & internal yang mengakses data Google Workspace untuk mengetahui informasi selengkapnya tentang cara administrator dapat membatasi akses ke cakupan hingga akses diberikan secara eksplisit ke ID klien OAuth Anda. |
invalid_client |
401 |
Klien OAuth tidak ditemukan. Misalnya, error ini terjadi jika nilai parameter
Jenis klien OAuth salah. Pastikan jenis aplikasi untuk ID klien ditetapkan ke TV dan Perangkat Input Terbatas. |
invalid_grant |
400 |
Nilai parameter code tidak valid, sudah diklaim, atau tidak dapat diuraikan. |
unsupported_grant_type |
400 |
Nilai parameter grant_type tidak valid. |
org_internal |
403 |
ID klien OAuth dalam permintaan adalah bagian dari project yang membatasi akses ke Akun Google di Organisasi Google Cloud tertentu. Konfirmasi konfigurasi jenis pengguna untuk aplikasi OAuth Anda. |
Memanggil Google API
Setelah aplikasi Anda mendapatkan token akses, Anda dapat menggunakan token tersebut untuk melakukan panggilan ke Google API atas nama akun pengguna tertentu jika cakupan akses yang diperlukan oleh API telah diberikan. Untuk melakukannya, sertakan
token akses dalam permintaan ke API dengan menyertakan parameter kueri access_token
atau nilai header HTTP Authorization
Bearer
. Jika memungkinkan,
header HTTP lebih disarankan, karena string kueri cenderung terlihat dalam log server. Dalam
sebagian besar kasus, Anda dapat menggunakan library klien untuk menyiapkan panggilan ke Google API (misalnya, saat
memanggil YouTube Live Streaming API).
Perhatikan bahwa YouTube Live Streaming API tidak mendukung alur akun layanan. Karena tidak ada cara untuk menautkan Akun Layanan ke akun YouTube, upaya untuk mengizinkan permintaan dengan alur ini akan menghasilkan error NoLinkedYouTubeAccount
.
Anda dapat mencoba semua Google API dan melihat cakupannya di OAuth 2.0 Playground.
Contoh HTTP GET
Panggilan ke
liveBroadcasts.list
endpoint (YouTube Live Streaming API) menggunakan header HTTP Authorization: Bearer
mungkin terlihat seperti berikut. Perhatikan bahwa Anda harus menentukan token akses Anda sendiri:
GET /youtube/v3/liveBroadcasts?part=id%2Csnippet&mine=true HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
Berikut adalah panggilan ke API yang sama untuk pengguna yang diautentikasi menggunakan parameter string kueri access_token
:
GET https://www.googleapis.com/youtube/v3/liveBroadcasts?access_token=access_token&part=id%2Csnippet&mine=true
Contoh curl
Anda dapat menguji perintah ini dengan aplikasi command line curl
. Berikut adalah
contoh yang menggunakan opsi header HTTP (lebih disarankan):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/v3/liveBroadcasts?part=id%2Csnippet&mine=true
Atau, opsi parameter string kueri:
curl https://www.googleapis.com/youtube/v3/liveBroadcasts?access_token=access_token&part=id%2Csnippet&mine=true
Memperbarui token akses
Token akses akan habis masa berlakunya secara berkala dan menjadi kredensial yang tidak valid untuk permintaan API terkait. Anda dapat memperbarui token akses tanpa meminta izin pengguna (termasuk saat pengguna tidak ada) jika Anda meminta akses offline ke cakupan yang terkait dengan token.
Untuk memperbarui token akses, aplikasi Anda mengirim permintaan HTTPS POST
ke server otorisasi Google (https://oauth2.googleapis.com/token
) yang
mencakup parameter berikut:
Kolom | |
---|---|
client_id |
Client ID yang diperoleh dari API Console. |
client_secret |
Rahasia klien yang diperoleh dari API Console. |
grant_type |
Seperti
yang ditentukan dalam
spesifikasi OAuth 2.0,
nilai kolom ini harus ditetapkan ke refresh_token . |
refresh_token |
Token refresh yang ditampilkan dari pertukaran kode otorisasi. |
Cuplikan berikut menunjukkan contoh permintaan:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=your_client_id& client_secret=your_client_secret& refresh_token=refresh_token& grant_type=refresh_token
Selama pengguna belum mencabut akses yang diberikan ke aplikasi, server token akan menampilkan objek JSON yang berisi token akses baru. Cuplikan berikut menunjukkan contoh respons:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/calendar.readonly", "token_type": "Bearer" }
Perhatikan bahwa ada batasan jumlah token refresh yang akan dikeluarkan; satu batasan per kombinasi klien/pengguna, dan batasan lainnya per pengguna di semua klien. Anda harus menyimpan token refresh di penyimpanan jangka panjang dan terus menggunakannya selama token tersebut tetap valid. Jika aplikasi Anda meminta terlalu banyak token refresh, aplikasi tersebut mungkin mencapai batas ini, sehingga token refresh yang lebih lama akan berhenti berfungsi.
Mencabut token
Dalam beberapa kasus, pengguna mungkin ingin mencabut akses yang diberikan ke aplikasi. Pengguna dapat mencabut akses dengan membuka Setelan Akun. Lihat bagian Hapus akses situs atau aplikasi di dokumen dukungan Situs & aplikasi pihak ketiga yang memiliki akses ke akun Anda untuk mengetahui informasi selengkapnya.
Aplikasi juga dapat mencabut akses yang diberikan kepadanya secara terprogram. Pencabutan akses secara terprogram penting dalam kasus saat pengguna berhenti berlangganan, menghapus aplikasi, atau resource API yang diperlukan oleh aplikasi telah berubah secara signifikan. Dengan kata lain, bagian dari proses penghapusan dapat mencakup permintaan API untuk memastikan izin yang sebelumnya diberikan ke aplikasi dihapus.
Untuk mencabut token secara terprogram, aplikasi Anda membuat permintaan ke
https://oauth2.googleapis.com/revoke
dan menyertakan token sebagai parameter:
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/revoke?token={token}
Token dapat berupa token akses atau token refresh. Jika token adalah token akses dan memiliki token refresh yang sesuai, token refresh juga akan dicabut.
Jika pencabutan berhasil diproses, kode status HTTP respons adalah
200
. Untuk kondisi error, kode status HTTP 400
ditampilkan bersama
dengan kode error.
Cakupan yang diizinkan
Alur OAuth 2.0 untuk perangkat hanya didukung untuk cakupan berikut:
OpenID Connect, Login dengan Google
email
openid
profile
Drive API
https://www.googleapis.com/auth/drive.appdata
https://www.googleapis.com/auth/drive.file
YouTube API
https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/youtube.readonly
Akses berbasis waktu
Akses berbasis waktu memungkinkan pengguna memberikan akses aplikasi Anda ke datanya selama durasi terbatas untuk menyelesaikan tindakan. Akses berbasis waktu tersedia di produk Google tertentu selama alur izin, sehingga pengguna dapat memberikan akses untuk jangka waktu terbatas. Contohnya adalah Data Portability API yang memungkinkan transfer data satu kali.
Saat pengguna memberikan akses berbasis waktu ke aplikasi Anda, masa berlaku token refresh akan berakhir setelah durasi yang ditentukan. Perhatikan bahwa token refresh dapat dibatalkan lebih awal dalam keadaan tertentu; lihat kasus ini untuk mengetahui detailnya. Kolom refresh_token_expires_in
yang ditampilkan dalam respons
penukaran kode otorisasi menunjukkan waktu yang tersisa hingga token refresh habis masa berlakunya dalam kasus tersebut.
Menerapkan Perlindungan Lintas Akun
Langkah tambahan yang harus Anda lakukan untuk melindungi akun pengguna Anda adalah menerapkan Perlindungan Lintas Akun dengan menggunakan Layanan Perlindungan Lintas Akun Google. Layanan ini memungkinkan Anda berlangganan notifikasi peristiwa keamanan yang memberikan informasi kepada aplikasi Anda tentang perubahan besar pada akun pengguna. Kemudian, Anda dapat menggunakan informasi tersebut untuk mengambil tindakan, bergantung pada cara Anda memutuskan untuk merespons peristiwa.
Beberapa contoh jenis peristiwa yang dikirim ke aplikasi Anda oleh Layanan Perlindungan Lintas Akun Google adalah:
-
https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
-
https://schemas.openid.net/secevent/oauth/event-type/token-revoked
-
https://schemas.openid.net/secevent/risc/event-type/account-disabled
Lihat halaman Melindungi akun pengguna dengan Perlindungan Lintas Akun untuk mengetahui informasi selengkapnya tentang cara menerapkan Perlindungan Lintas Akun dan daftar lengkap peristiwa yang tersedia.