Dokumen ini menjelaskan cara aplikasi yang diinstal di perangkat seperti ponsel, tablet, dan komputer menggunakan endpoint OAuth 2.0 Google untuk mengizinkan akses ke Google API.
OAuth 2.0 memungkinkan pengguna berbagi data tertentu dengan aplikasi sambil menjaga nama pengguna, sandi, dan informasi lainnya tetap pribadi. Misalnya, aplikasi dapat menggunakan OAuth 2.0 untuk mendapatkan izin dari pengguna guna menyimpan file di Google Drive.
Aplikasi yang diinstal didistribusikan ke perangkat individual, dan diasumsikan bahwa aplikasi ini tidak dapat menyimpan rahasia. Pengguna dapat mengakses Google API saat pengguna ada di aplikasi atau saat aplikasi berjalan di latar belakang.
Alur otorisasi ini serupa dengan yang digunakan untuk aplikasi server web. Perbedaan utamanya adalah bahwa aplikasi yang diinstal harus membuka browser sistem dan menyediakan URI pengalihan lokal untuk menangani respons dari server otorisasi Google.
Alternatif
Untuk aplikasi seluler, Anda dapat memilih menggunakan Login dengan Google untuk Android atau iOS. Library klien Login dengan Google menangani autentikasi dan otorisasi pengguna, dan library tersebut mungkin lebih mudah diterapkan daripada protokol tingkat lebih rendah yang dijelaskan di sini.
Untuk aplikasi yang berjalan di perangkat yang tidak mendukung browser sistem atau yang memiliki kemampuan input terbatas, seperti TV, konsol game, kamera, atau printer, lihat OAuth 2.0 untuk TV & Perangkat atau Login di TV dan Perangkat Input Terbatas.
Library dan sampel
Kami merekomendasikan library dan contoh berikut untuk membantu Anda menerapkan alur OAuth 2.0 yang dijelaskan dalam dokumen ini:
Prasyarat
Mengaktifkan API untuk project Anda
Aplikasi apa pun 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.
- API Library mencantumkan semua API yang tersedia, yang dikelompokkan berdasarkan kelompok produk dan popularitas. Jika API yang ingin Anda aktifkan tidak terlihat dalam daftar, gunakan penelusuran untuk mencarinya, atau klik Lihat Semua dalam kategori produknya.
- Pilih API yang ingin Anda aktifkan, lalu klik tombol Aktifkan.
- If prompted, enable billing.
- If prompted, read and accept the API's Terms of Service.
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. Selanjutnya, aplikasi Anda dapat menggunakan kredensial tersebut untuk mengakses API yang telah Anda aktifkan untuk project tersebut.
- Go to the Credentials page.
- Klik Create credentials > OAuth client ID.
- Bagian di bawah ini menjelaskan jenis klien dan metode pengalihan yang didukung oleh server otorisasi Google. Pilih jenis klien yang direkomendasikan untuk aplikasi Anda, beri nama klien OAuth, lalu tetapkan kolom lain dalam formulir yang sesuai.
Skema URI Kustom (Android, iOS, UWP)
Skema URI kustom direkomendasikan untuk aplikasi Android, aplikasi iOS, dan aplikasi Universal Windows Platform (UWP).
Android
- Pilih jenis aplikasi Android.
- Masukkan nama untuk klien OAuth. Nama ini ditampilkan di Credentials page project untuk mengidentifikasi klien.
- Masukkan nama paket aplikasi Android Anda. Nilai ini ditentukan dalam
atribut
package
elemen<manifest>
dalam file manifes aplikasi Anda. - Masukkan sidik jari sertifikat penandatanganan SHA-1 dari distribusi aplikasi.
- Jika aplikasi Anda menggunakan penandatanganan aplikasi oleh Google Play, salin sidik jari SHA-1 dari halaman penandatanganan aplikasi Konsol Play.
- Jika Anda mengelola keystore dan kunci penandatanganan sendiri, gunakan aplikasi utilitas keytool yang disertakan dengan Java untuk mencetak informasi sertifikat dalam format yang dapat dibaca manusia. Salin nilai
SHA1
di bagianCertificate fingerprints
pada output keytool. Baca bagian Mengautentikasi Klien dalam dokumentasi Google API untuk Android untuk mengetahui informasi selengkapnya.
- Klik Create.
iOS
- Pilih jenis aplikasi iOS.
- Masukkan nama untuk klien OAuth. Nama ini ditampilkan di Credentials page project untuk mengidentifikasi klien.
- Masukkan ID paket untuk aplikasi Anda. ID paket adalah nilai kunci CFBundleIdentifier dalam file resource daftar properti informasi aplikasi Anda (info.plist). Nilai ini paling sering ditampilkan di panel General atau panel Recording & Capabilities dari editor project Xcode. ID paket juga ditampilkan di bagian Informasi Umum pada halaman Informasi Aplikasi untuk aplikasi di situs App Store Connect Apple.
- (Opsional)
Masukkan ID App Store aplikasi Anda jika aplikasi tersebut dipublikasikan di App Store Apple. ID Store adalah string numerik yang disertakan dalam setiap URL Apple App Store.
- Buka aplikasi Apple App Store di perangkat iOS atau iPadOS Anda.
- Telusuri aplikasi Anda.
- Pilih tombol Bagikan (simbol persegi dan panah atas).
- Pilih Salin Link.
- Tempel link ke editor teks. ID App Store adalah bagian akhir URL.
Contoh:
https://apps.apple.com/app/google/id284815942
- (Opsional)
Masukkan ID Tim Anda. Lihat bagian Menemukan ID Tim Anda dalam dokumentasi Akun Developer Apple untuk informasi selengkapnya.
- Klik Create.
UWP
- Pilih jenis aplikasi Universal Windows Platform.
- Masukkan nama untuk klien OAuth. Nama ini ditampilkan di Credentials page project untuk mengidentifikasi klien.
- Masukkan ID Microsoft Store 12 karakter aplikasi Anda. Anda dapat menemukan nilai ini di Microsoft Partner Center pada halaman App identity di bagian Pengelolaan aplikasi.
- Klik Create.
Untuk aplikasi UWP, skema URI kustom tidak boleh lebih dari 39 karakter.
Alamat IP loopback (macOS, Linux, desktop Windows)
Untuk menerima kode otorisasi menggunakan URL ini, aplikasi Anda harus memproses di server web lokal. Hal ini dapat dilakukan di banyak platform, tetapi tidak semua. Namun, jika platform Anda mendukungnya, ini adalah mekanisme yang direkomendasikan untuk mendapatkan kode otorisasi.
Saat menerima respons otorisasi, aplikasi Anda harus meresponsnya dengan menampilkan halaman HTML yang memerintahkan pengguna untuk menutup browser dan kembali ke aplikasi Anda.
Penggunaan yang direkomendasikan | Aplikasi macOS, Linux, dan Windows desktop (tetapi bukan Universal Windows Platform) |
Nilai formulir | Setel jenis aplikasi ke aplikasi Desktop. |
Salin/tempel manual
Mengidentifikasi cakupan akses
Cakupan memungkinkan aplikasi Anda hanya meminta akses ke resource yang diperlukan, sekaligus memungkinkan pengguna mengontrol jumlah akses yang diberikan ke aplikasi Anda. Oleh karena itu, mungkin ada hubungan terbalik antara jumlah cakupan yang diminta dan kemungkinan untuk mendapatkan izin pengguna.
Sebelum mulai menerapkan otorisasi OAuth 2.0, sebaiknya Anda mengidentifikasi cakupan yang memerlukan izin untuk diakses oleh aplikasi Anda.
Dokumen Cakupan API OAuth 2.0 berisi daftar lengkap cakupan yang mungkin Anda gunakan untuk mengakses Google API.
Mendapatkan token akses OAuth 2.0
Langkah-langkah berikut menunjukkan cara aplikasi Anda berinteraksi dengan server OAuth 2.0 Google untuk mendapatkan izin pengguna untuk melakukan permintaan API atas nama pengguna. Aplikasi Anda harus memiliki izin tersebut sebelum dapat menjalankan permintaan Google API yang memerlukan otorisasi pengguna.
Langkah 1: Buat pemverifikasi kode dan tantangan
Google mendukung protokol Proof Key for Code Exchange (PKCE) untuk membuat alur aplikasi terinstal lebih aman. Pemverifikasi kode unik dibuat untuk setiap permintaan otorisasi, dan nilainya yang telah diubah, yang disebut "code_challenge", dikirim ke server otorisasi untuk mendapatkan kode otorisasi.
Membuat pemverifikasi kode
code_verifier
adalah string acak kriptografi entropi tinggi menggunakan karakter yang tidak dicadangkan [A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~", dengan panjang minimum 43 karakter dan panjang maksimum 128 karakter.
Pemverifikasi kode harus memiliki entropi yang cukup agar tidak mudah menebak nilainya.
Membuat tantangan kode
Dua metode pembuatan tantangan kode didukung.
Metode Pembuatan Tantangan Kode | |
---|---|
S256 (direkomendasikan) | Tantangan kode adalah hash SHA256 berenkode Base64URL (tanpa padding) dari pemverifikasi kode.
|
biasa | Tantangan kode adalah nilai yang sama dengan pemverifikasi kode yang dihasilkan di atas.
|
Langkah 2: Kirim permintaan ke server OAuth 2.0 Google
Untuk mendapatkan otorisasi pengguna, kirim permintaan ke server otorisasi Google di
https://accounts.google.com/o/oauth2/v2/auth
. Endpoint ini menangani pencarian sesi aktif, mengautentikasi pengguna, dan mendapatkan izin pengguna. Endpoint hanya dapat diakses melalui SSL, dan menolak koneksi HTTP (non-SSL).
Server otorisasi mendukung parameter string kueri berikut untuk aplikasi yang terinstal:
Parameter | |||||||
---|---|---|---|---|---|---|---|
client_id |
Wajib
Client ID untuk aplikasi Anda. Anda dapat menemukan nilai ini di Credentials page API Console. |
||||||
redirect_uri |
Wajib
Menentukan cara server otorisasi Google mengirimkan respons ke aplikasi Anda. Ada beberapa opsi pengalihan yang tersedia untuk aplikasi yang terinstal, dan Anda akan menyiapkan kredensial otorisasi dengan mempertimbangkan metode pengalihan tertentu. Nilai harus sama persis dengan salah satu URI pengalihan yang diberi otorisasi untuk klien OAuth 2.0, yang Anda konfigurasikan dalam Credentials page API Consoleklien Anda. Jika nilai ini tidak cocok dengan URI yang diberi otorisasi, Anda akan mendapatkan error Tabel di bawah ini menunjukkan parameter value
|
||||||
response_type |
Wajib
Menentukan apakah endpoint Google OAuth 2.0 menampilkan kode otorisasi. Setel nilai parameter ke |
||||||
scope |
Wajib
Daftar cakupan yang dipisahkan spasi yang mengidentifikasi resource yang dapat diakses aplikasi Anda atas nama pengguna. Nilai ini menunjukkan layar izin yang ditampilkan Google kepada pengguna. Cakupan memungkinkan aplikasi Anda hanya meminta akses ke resource yang diperlukan, sekaligus memungkinkan pengguna mengontrol jumlah akses yang diberikan ke aplikasi Anda. Dengan demikian, ada hubungan terbalik antara jumlah cakupan yang diminta dan kemungkinan untuk mendapatkan izin pengguna. |
||||||
code_challenge |
Direkomendasikan
Menentukan |
||||||
code_challenge_method |
Direkomendasikan
Menentukan metode yang digunakan untuk mengenkode |
||||||
state |
Direkomendasikan
Menentukan nilai string apa pun yang digunakan aplikasi untuk mempertahankan status antara permintaan otorisasi Anda dan respons server otorisasi.
Server menampilkan nilai persis yang Anda kirim sebagai pasangan Anda dapat menggunakan parameter ini untuk beberapa tujuan, seperti mengarahkan pengguna ke resource yang benar di aplikasi Anda, mengirim nonce, dan mengurangi pemalsuan permintaan lintas situs. Karena |
||||||
login_hint |
Opsional
Jika aplikasi Anda mengetahui pengguna yang mencoba mengautentikasi, aplikasi tersebut dapat menggunakan parameter ini untuk memberikan petunjuk ke Server Google Authentication. Server menggunakan petunjuk ini untuk menyederhanakan alur login dengan mengisi kolom email di formulir login atau memilih sesi multi-login yang sesuai. Setel nilai parameter ke alamat email atau ID |
Contoh URL otorisasi
Tab di bawah menampilkan URL otorisasi contoh untuk opsi URI pengalihan yang berbeda.
URL tersebut identik kecuali untuk nilai parameter redirect_uri
. URL
tersebut juga berisi parameter response_type
dan client_id
yang diperlukan serta
parameter state
opsional. Setiap URL berisi baris baru dan spasi agar
mudah dibaca.
Skema URI Kustom
https://accounts.google.com/o/oauth2/v2/auth? scope=& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=com.example.app%3A/oauth2redirect& client_id=client_id
Alamat IP loopback
https://accounts.google.com/o/oauth2/v2/auth? scope=& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=http%3A//127.0.0.1%3A9004& client_id=client_id
Langkah 3: Google akan meminta izin pengguna
Pada langkah ini, pengguna memutuskan apakah akan memberikan akses yang diminta ke aplikasi Anda. Pada tahap ini, Google menampilkan jendela izin yang menunjukkan nama aplikasi Anda dan layanan Google API yang meminta izin untuk mengakses dengan kredensial otorisasi pengguna dan ringkasan cakupan akses yang akan diberikan. Pengguna kemudian dapat memberikan izin untuk memberikan akses ke satu atau beberapa cakupan yang diminta oleh aplikasi Anda atau menolak permintaan.
Aplikasi Anda tidak perlu melakukan apa pun pada tahap ini karena aplikasi menunggu respons dari server OAuth 2.0 Google yang menunjukkan apakah ada akses yang diberikan. Respons tersebut dijelaskan dalam langkah berikut.
Error
Permintaan ke endpoint otorisasi OAuth 2.0 Google dapat menampilkan pesan error yang ditampilkan kepada pengguna, bukan alur autentikasi dan otorisasi yang diharapkan. Kode error umum dan resolusi yang disarankan tercantum di bawah ini.
admin_policy_enforced
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 informasi selengkapnya tentang cara administrator dapat membatasi akses ke semua cakupan atau cakupan sensitif dan yang dibatasi hingga akses diberikan secara eksplisit ke client ID OAuth Anda.
disallowed_useragent
Endpoint otorisasi ditampilkan di dalam agen pengguna tersemat yang tidak diizinkan oleh Kebijakan OAuth 2.0 Google.
Android
Developer Android mungkin mendapati pesan error ini saat membuka permintaan otorisasi di
android.webkit.WebView
.
Sebagai gantinya, developer harus menggunakan library Android seperti Login dengan Google untuk Android atau AppAuth untuk Android dari OpenID Foundation.
Developer web mungkin mengalami error ini saat aplikasi Android membuka link web umum dalam agen pengguna yang disematkan dan pengguna membuka endpoint otorisasi OAuth 2.0 Google dari situs Anda. Developer harus mengizinkan link umum terbuka di pengendali link default sistem operasi, yang mencakup pengendali Link Aplikasi Android atau aplikasi browser default. Library Tab Khusus Android juga merupakan opsi yang didukung.
iOS
Developer iOS dan macOS mungkin mengalami error ini saat membuka permintaan otorisasi di
WKWebView
.
Sebagai gantinya, developer harus menggunakan library iOS seperti Login dengan Google untuk iOS atau AppAuth untuk iOS OpenID Foundation.
Developer web mungkin mengalami error ini saat aplikasi iOS atau macOS membuka link web umum di agen pengguna tersemat dan pengguna membuka endpoint otorisasi OAuth 2.0 Google dari situs Anda. Developer harus mengizinkan link umum terbuka di pengendali link default sistem operasi, yang mencakup pengendali Universal Links atau aplikasi browser default. Library SFSafariViewController
juga merupakan opsi yang didukung.
org_internal
Client ID OAuth dalam permintaan adalah bagian dari project yang membatasi akses ke Akun Google di Organisasi Google Cloud tertentu. Untuk informasi selengkapnya tentang opsi konfigurasi ini, lihat bagian Jenis pengguna di artikel bantuan layar Menyiapkan izin.
invalid_grant
Jika Anda menggunakan
pemverifikasi dan tantangan
kode, parameter code_callenge
tidak valid atau tidak ada. Pastikan parameter
code_challenge
ditetapkan dengan benar.
Saat memperbarui token akses, masa berlaku token mungkin telah habis atau dibatalkan validasinya. Autentikasi pengguna lagi dan minta izin pengguna untuk mendapatkan token baru. Jika Anda terus melihat error ini, pastikan bahwa aplikasi Anda telah dikonfigurasi dengan benar dan Anda menggunakan token serta parameter yang benar dalam permintaan. Jika tidak, akun pengguna mungkin telah dihapus atau dinonaktifkan.
redirect_uri_mismatch
redirect_uri
yang diteruskan dalam permintaan otorisasi tidak cocok dengan URI pengalihan yang diberi otorisasi untuk client ID OAuth. Tinjau URI pengalihan yang diberi otorisasi di
Google API Console Credentials page.
redirect_uri
yang diteruskan mungkin tidak valid untuk jenis klien tersebut.
Parameter redirect_uri
mungkin mengacu pada alur OAuth out-of-band (OOB) yang tidak digunakan lagi dan tidak didukung lagi. Lihat
panduan migrasi untuk memperbarui
integrasi Anda.
Langkah 4: Tangani respons server OAuth 2.0
Cara aplikasi Anda menerima respons otorisasi bergantung pada
skema URI pengalihan yang digunakannya. Apa pun skemanya, respons akan berisi kode otorisasi (code
) atau error (error
). Misalnya, error=access_denied
menunjukkan bahwa pengguna menolak permintaan.
Jika pengguna memberikan akses ke aplikasi, Anda dapat menukar kode otorisasi dengan token akses dan token refresh seperti yang dijelaskan pada langkah berikutnya.
Langkah 5: Tukar kode otorisasi untuk memuat ulang dan mengakses token
Untuk menukar kode otorisasi dengan token akses, panggil
endpoint https://oauth2.googleapis.com/token
dan tetapkan parameter berikut:
Kolom | |
---|---|
client_id |
Client ID yang diperoleh dari API Console Credentials page. |
client_secret |
Rahasia klien yang diperoleh dari API Console Credentials page. |
code |
Kode otorisasi yang ditampilkan dari permintaan awal. |
code_verifier |
Pemverifikasi kode yang Anda buat di Langkah 1. |
grant_type |
Seperti yang ditentukan dalam spesifikasi
OAuth 2.0, nilai kolom ini harus ditetapkan ke authorization_code . |
redirect_uri |
Salah satu URI pengalihan yang tercantum untuk project Anda di
API Console
Credentials page untuk
client_id tertentu. |
Cuplikan berikut menunjukkan permintaan contoh:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7& client_id=your_client_id& client_secret=your_client_secret& redirect_uri=http://127.0.0.1:9004& grant_type=authorization_code
Google merespons permintaan ini dengan menampilkan objek JSON yang berisi token akses berjangka pendek dan token refresh.
Responsnya berisi kolom berikut:
Kolom | |
---|---|
access_token |
Token yang dikirim aplikasi Anda untuk mengizinkan permintaan Google API. |
expires_in |
Masa berlaku token akses yang tersisa dalam hitungan detik. |
id_token |
Catatan: Properti ini hanya dikembalikan jika permintaan Anda menyertakan cakupan identitas, seperti openid , profile , atau email . Nilainya adalah
Token Web JSON (JWT) yang berisi informasi identitas yang ditandatangani secara digital tentang pengguna. |
refresh_token |
Token yang dapat Anda gunakan untuk mendapatkan token akses baru. Token refresh valid hingga pengguna mencabut akses. Perhatikan bahwa token refresh selalu dikembalikan untuk aplikasi yang terinstal. |
scope |
Cakupan akses yang diberikan oleh access_token dinyatakan sebagai daftar string yang dipisahkan spasi dan peka huruf besar/kecil. |
token_type |
Jenis token yang ditampilkan. Pada saat ini, nilai kolom ini selalu ditetapkan ke Bearer . |
Cuplikan berikut menunjukkan contoh respons:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/drive.metadata.readonly", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
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 Bearer
header HTTP Authorization
. Jika memungkinkan, header HTTP lebih direkomendasikan, karena string kueri cenderung terlihat di log server. Dalam sebagian besar kasus, Anda dapat menggunakan library klien untuk menyiapkan panggilan ke Google API (misalnya, saat memanggil Drive Files API).
Anda dapat mencoba semua Google API dan melihat cakupannya di OAuth 2.0 Playground.
Contoh HTTP GET
Panggilan ke endpoint
drive.files
(Drive Files API) yang menggunakan header HTTP
Authorization: Bearer
mungkin terlihat seperti berikut. Perhatikan bahwa Anda perlu menentukan token akses Anda sendiri:
GET /drive/v2/files HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
Berikut adalah panggilan ke API yang sama untuk pengguna terautentikasi menggunakan parameter string kueri access_token
:
GET https://www.googleapis.com/drive/v2/files?access_token=access_token
Contoh curl
Anda dapat menguji perintah ini dengan aplikasi command line curl
. Berikut ini
contoh yang menggunakan opsi header HTTP (lebih disukai):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/drive/v2/files
Atau, sebagai alternatif, opsi parameter string kueri:
curl https://www.googleapis.com/drive/v2/files?access_token=access_token
Memperbarui token akses
Masa berlaku token akses berakhir secara berkala dan menjadi tidak valid untuk permintaan API terkait. Anda dapat memperbarui token akses tanpa meminta izin pengguna (termasuk ketika pengguna tidak ada) jika meminta akses offline ke cakupan yang terkait dengan token.
Untuk memperbarui token akses, aplikasi Anda akan mengirimkan permintaan POST
HTTPS ke server otorisasi Google (https://oauth2.googleapis.com/token
) yang menyertakan parameter berikut:
Kolom | |
---|---|
client_id |
Client ID yang diperoleh dari API Console. |
client_secret |
Rahasia klien yang diperoleh dari API Console.
(client_secret tidak berlaku untuk permintaan dari klien yang terdaftar sebagai aplikasi Android, iOS, atau Chrome.)
|
grant_type |
Seperti
yang ditentukan dalam
spesifikasi OAuth 2.0,
nilai kolom ini harus ditetapkan ke refresh_token . |
refresh_token |
Token refresh ditampilkan dari pertukaran kode otorisasi. |
Cuplikan berikut menunjukkan permintaan contoh:
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 tidak 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", "token_type": "Bearer" }
Perhatikan bahwa ada batas jumlah token refresh yang akan dikeluarkan; satu batas per kombinasi klien/pengguna, dan satu lagi per pengguna di seluruh klien. Anda harus menyimpan token refresh dalam penyimpanan jangka panjang dan terus menggunakannya selama token tersebut tetap valid. Jika meminta terlalu banyak token refresh, aplikasi Anda mungkin akan mencapai batas tersebut, 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 Menghapus situs atau aplikasi dari situs & aplikasi pihak ketiga yang memiliki akses ke akun Anda untuk mengetahui informasi selengkapnya.
Aplikasi juga dapat mencabut akses yang diberikan secara terprogram. Pencabutan terprogram diperlukan jika pengguna berhenti berlangganan, menghapus aplikasi, atau resource API yang diperlukan oleh aplikasi telah berubah secara signifikan. Dengan kata lain, bagian dari proses penghapusan ini dapat mencakup permintaan API untuk memastikan izin yang sebelumnya diberikan untuk aplikasi telah dihapus.
Untuk mencabut token secara terprogram, aplikasi Anda membuat permintaan ke https://oauth2.googleapis.com/revoke
dan menyertakan token tersebut 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.
Bacaan Lebih Lanjut
Praktik Terbaik Saat Ini IETF OAuth 2.0 untuk Aplikasi Native menetapkan banyak praktik terbaik yang didokumentasikan di sini.