Menggunakan REST API

Dokumen ini menunjukkan cara melakukan operasi pengguna umum, seperti login pengguna dan menggunakan token, menggunakan Identity Platform REST API.

Sebelum memulai

Untuk menggunakan REST API, Anda memerlukan kunci Identity Platform API. Untuk mendapatkan kunci:

  1. Buka halaman Penyedia Identitas di konsol Google Cloud.
    Buka halaman Penyedia Identitas

  2. Klik Detail penyiapan aplikasi.

  3. Salin kolom apiKey.

Perhatikan bahwa HTTPS diperlukan untuk semua panggilan API.

Memanggil API

Menukar token kustom dengan ID dan token refresh

Anda dapat menukarkan token Auth kustom dengan ID dan token refresh dengan mengeluarkan permintaan HTTP POST ke endpoint signInWithCustomToken.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
token string Token kustom Identity Platform yang digunakan untuk membuat pasangan token ID dan token refresh.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
tenantId string ID tenant yang digunakan pengguna untuk login. Hanya digunakan dalam multi-tenancy.
Harus cocok dengan tenant_id dalam token.
Klaim Token Kustom
Properti Nama Deskripsi
alg Algoritme Harus berupa RS256.
iss Penerbit Alamat email akun layanan project Anda.
sub Subjek Alamat email akun layanan project Anda.
aud Audiens https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit
iat Waktu penerbitan Waktu saat ini, dalam satuan detik sejak epoch UNIX.
exp Waktu habis masa berlaku Waktu saat token sudah tidak berlaku lagi, dalam satuan detik sejak epoch UNIX. Waktu ini bisa mencapai maksimum 3600 detik lebih lama daripada iat.
Catatan: ini hanya mengontrol kapan token kustom berhenti berlaku. Namun, setelah Anda memproses login menggunakan signInWithCustomToken(), pengguna akan tetap login di perangkatnya hingga validitas sesi berakhir atau pengguna tersebut logout.
uid ID pengguna ID unik pengguna, dengan panjang 1-36 karakter.
tenant_id ID Tenant ID tenant yang digunakan pengguna untuk login.
klaim (opsional) Klaim kustom opsional yang akan disertakan dalam variabel auth atau request.auth Security Rules.
Payload Respons
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform yang dibuat dari token kustom yang disediakan.
refreshToken string Token refresh Identity Platform yang dibuat dari token kustom yang disediakan.
expiresIn string Jumlah detik masa berlaku token ID.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan token kustom.

Contoh respons

{
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Kode error umum

  • INVALID_CUSTOM_TOKEN: Format token kustom salah atau token tidak valid karena alasan tertentu (misalnya, sudah tidak berlaku, tanda tangan tidak valid, dll.)
  • CREDENTIAL_MISMATCH: Token kustom sesuai dengan project Google Cloud yang berbeda.

Menukarkan token refresh dengan token ID

Anda dapat memperbarui token ID Identity Platform dengan mengeluarkan permintaan POST HTTP ke endpoint securetoken.googleapis.com.

Metode: POST

Content-Type: application/x-www-form-urlencoded

Endpoint
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
grant_type string Jenis pemberian token refresh, selalu "refresh_token".
refresh_token string Token refresh Identity Platform.
Payload Respons
Nama Properti Jenis Deskripsi
expires_in string Jumlah detik masa berlaku token ID.
token_type string Jenis token refresh, selalu "Bearer".
refresh_token string Token refresh Identity Platform yang diberikan dalam permintaan atau token refresh baru.
id_token string Token ID Identity Platform.
user_id string uid yang sesuai dengan token ID yang diberikan.
project_id string ID Project Google Cloud Anda.

Contoh permintaan

curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform baru.

Contoh respons

{
  "expires_in": "3600",
  "token_type": "Bearer",
  "refresh_token": "[REFRESH_TOKEN]",
  "id_token": "[ID_TOKEN]",
  "user_id": "tRcfmLH7o2XrNELi...",
  "project_id": "1234567890"
}

Kode error umum

  • TOKEN_EXPIRED: Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • USER_DISABLED: Akun pengguna telah dinonaktifkan oleh administrator.
  • USER_NOT_FOUND: Pengguna yang sesuai dengan token refresh tidak ditemukan. Kemungkinan pengguna tersebut telah dihapus.
  • Kunci API tidak valid. Berikan kunci API yang valid. (kunci API yang diberikan tidak valid)
  • INVALID_REFRESH_TOKEN: Token refresh yang diberikan tidak valid.
  • Payload JSON yang diterima tidak valid. Nama \"refresh_tokens\" tidak diketahui: Tidak dapat mengikat parameter kueri. Kolom 'refresh_tokens' tidak dapat ditemukan dalam pesan permintaan.
  • INVALID_GRANT_TYPE: Jenis pemberian yang ditentukan tidak valid.
  • MISSING_REFRESH_TOKEN: Tidak ada token refresh yang diberikan.
  • PROJECT_NUMBER_MISMATCH: Nomor project token refresh tidak cocok dengan nomor project kunci API yang diberikan.

Daftar dengan email / sandi

Anda dapat membuat pengguna email dan sandi baru dengan mengeluarkan permintaan HTTP POST ke endpoint Auth signupNewUser.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
email string Email yang akan dibuat pengguna.
sandi string Sandi yang akan dibuat pengguna.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
tenantId string ID tenant pengguna yang akan dibuat. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform untuk pengguna yang baru dibuat.
email string Email untuk pengguna yang baru dibuat.
refreshToken string Token refresh Identity Platform untuk pengguna yang baru dibuat.
expiresIn string Jumlah detik masa berlaku token ID.
localId string uid pengguna yang baru dibuat.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan akun baru.

Contoh respons

{
  "idToken": "[ID_TOKEN]",
  "email": "[user@example.com]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "tRcfmLH7..."
}

Kode error umum

  • EMAIL_EXISTS: Alamat email sudah digunakan oleh akun lain.
  • OPERATION_NOT_ALLOWED: Login dengan sandi dinonaktifkan untuk project ini.
  • TOO_MANY_ATTEMPTS_TRY_LATER: Kami telah memblokir semua permintaan dari perangkat ini karena ada aktivitas yang tidak biasa. Coba lagi nanti.

Login dengan email / sandi

Anda dapat memproses login pengguna dengan email dan sandi dengan mengeluarkan permintaan HTTP POST ke endpoint Auth verifyPassword.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
email string Email yang digunakan pengguna untuk login.
sandi string Sandi untuk akun.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
tenantId string ID tenant yang digunakan pengguna untuk login. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform untuk pengguna yang diautentikasi.
email string Email untuk pengguna yang diautentikasi.
refreshToken string Token refresh Identity Platform untuk pengguna yang diautentikasi.
expiresIn string Jumlah detik masa berlaku token ID.
localId string uid pengguna yang diautentikasi.
terdaftar boolean Apakah email tersebut ditujukan untuk akun yang sudah ada.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan akun email/sandi yang ada.

Contoh respons

{
  "localId": "ZY1rJK0eYLg...",
  "email": "[user@example.com]",
  "displayName": "",
  "idToken": "[ID_TOKEN]",
  "registered": true,
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Kode error umum

  • EMAIL_NOT_FOUND: Tidak ada data pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.
  • INVALID_PASSWORD: Sandi tidak valid atau pengguna tidak memiliki sandi.
  • USER_DISABLED: Akun pengguna telah dinonaktifkan oleh administrator.

Login secara anonim

Anda dapat memproses login pengguna secara anonim dengan mengeluarkan permintaan POST HTTP ke endpoint signupNewUser Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
tenantId string ID tenant yang digunakan pengguna untuk login. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform untuk pengguna yang baru dibuat.
email string Karena pengguna bersifat anonim, kolom ini harus kosong.
refreshToken string Token refresh Identity Platform untuk pengguna yang baru dibuat.
expiresIn string Jumlah detik masa berlaku token ID.
localId string uid pengguna yang baru dibuat.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna anonim.

Contoh respons

{
  "idToken": "[ID_TOKEN]",
  "email": "",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "Jws4SVjpT..."
}

Kode error umum

  • OPERATION_NOT_ALLOWED: Login pengguna anonim dinonaktifkan untuk project ini.

Login dengan kredensial OAuth

Anda dapat memproses login pengguna dengan kredensial OAuth dengan mengeluarkan permintaan HTTP POST ke endpoint Auth verifyAssertion.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
requestUri string URI tempat IdP mengalihkan pengguna kembali.
postBody string Berisi kredensial OAuth (token ID atau token akses) dan ID penyedia yang menerbitkan kredensial.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
returnIdpCredential boolean Apakah akan memaksa pengembalian kredensial OAuth pada error berikut: FEDERATED_USER_ID_ALREADY_LINKED dan EMAIL_EXISTS.
tenantId string ID tenant yang digunakan pengguna untuk login. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
federatedId string ID unik mengidentifikasi akun IdP.
providerId string ID penyedia yang terhubung (misalnya "google.com" untuk penyedia Google).
localId string uid pengguna yang diautentikasi.
emailVerified boolean Apakah email login diverifikasi.
email string Email akun.
oauthIdToken string Token ID OIDC jika tersedia.
oauthAccessToken string Token akses OAuth jika tersedia.
oauthTokenSecret string Rahasia token OAuth 1.0 jika tersedia.
rawUserInfo string Respons JSON yang di-stringify yang berisi semua data IdP yang sesuai dengan kredensial OAuth yang diberikan.
firstName string Nama depan untuk akun.
lastName string Nama belakang untuk akun.
fullName string Nama lengkap untuk akun.
displayName string Nama tampilan untuk akun.
photoUrl string URL foto untuk akun.
idToken string Token ID Identity Platform untuk pengguna yang diautentikasi.
refreshToken string Token refresh Identity Platform untuk pengguna yang diautentikasi.
expiresIn string Jumlah detik masa berlaku token ID.
needConfirmation boolean Apakah sudah ada akun lain dengan kredensial yang sama. Pengguna harus login ke akun asli, lalu menautkan kredensial saat ini ke akun tersebut.

Contoh permintaan dengan token ID OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang diautentikasi.

Contoh respons dengan token ID OAuth

{
  "federatedId": "https://accounts.google.com/1234567890",
  "providerId": "google.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthIdToken": "[GOOGLE_ID_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Contoh permintaan dengan token akses OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang diautentikasi.

Contoh respons dengan token akses OAuth

{
  "federatedId": "http://facebook.com/1234567890",
  "providerId": "facebook.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://scontent.xx.fbcdn.net/v/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Contoh permintaan dengan kredensial OAuth 1.0 Twitter

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang diautentikasi.

Contoh respons dengan kredensial OAuth 1.0 Twitter

{
  "federatedId": "http://twitter.com/1234567890",
  "providerId": "twitter.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]",
  "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "http://abs.twimg.com/sticky/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Kode error umum

  • OPERATION_NOT_ALLOWED: Penyedia yang sesuai dinonaktifkan untuk project ini.
  • INVALID_IDP_RESPONSE: Kredensial autentikasi yang diberikan salah formatnya atau sudah tidak berlaku.

Mengambil penyedia untuk email

Anda dapat melihat semua penyedia yang terkait dengan email tertentu dengan mengeluarkan permintaan POST HTTP ke endpoint createAuthUri Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
ID string Alamat email pengguna
continueUri string URI tempat IdP mengalihkan pengguna kembali. Untuk kasus penggunaan ini, ini hanyalah URL saat ini.
tenantId string ID tenant yang digunakan pengguna untuk login. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
allProviders Daftar string Daftar penyedia yang sebelumnya digunakan pengguna untuk login.
terdaftar boolean Apakah email tersebut untuk akun yang sudah ada

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi daftar penyedia yang terkait dengan email.

Contoh respons

{
  "allProviders": [
    "password",
    "google.com"
  ],
  "registered": true
}

Kode error umum

  • INVALID_EMAIL: Format alamat email salah.

Mengirim email reset sandi

Anda dapat mengirim email reset sandi dengan mengeluarkan permintaan POST HTTP ke endpoint getOobConfirmationCode Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Header Opsional
Nama Properti Deskripsi
X-Firebase-Locale Kode bahasa yang sesuai dengan lokalitas pengguna. Meneruskan ini akan melokalkan email reset sandi yang dikirim ke pengguna.
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
requestType string Jenis kode OOB yang akan ditampilkan. Harus "PASSWORD_RESET" untuk reset sandi.
email string Alamat email pengguna.
tenantId string ID tenant pengguna yang meminta reset sandi. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
email string Alamat email pengguna.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
 "email": "[user@example.com]"
}

Kode error umum

  • EMAIL_NOT_FOUND: Tidak ada data pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Memverifikasi kode reset sandi

Anda dapat memverifikasi kode reset sandi dengan mengeluarkan permintaan POST HTTP ke endpoint resetPassword Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
oobCode string Kode tindakan email yang dikirim ke email pengguna untuk mereset sandi.
tenantId string ID tenant pengguna yang meminta reset sandi. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
email string Alamat email pengguna.
requestType string Jenis kode tindakan email. Harus berupa "PASSWORD_RESET".

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
  "email": "[user@example.com]",
  "requestType": "PASSWORD_RESET"
}

Kode error umum

  • OPERATION_NOT_ALLOWED: Login dengan sandi dinonaktifkan untuk project ini.
  • EXPIRED_OOB_CODE: Masa berlaku kode tindakan telah berakhir.
  • INVALID_OOB_CODE: Kode tindakan tidak valid. Hal ini dapat terjadi jika kode salah format, sudah tidak berlaku, atau sudah digunakan.

Mengonfirmasi reset sandi

Anda dapat menerapkan perubahan reset sandi dengan mengeluarkan permintaan POST HTTP ke endpoint resetPassword Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
oobCode string Kode tindakan email yang dikirim ke email pengguna untuk mereset sandi.
newPassword string Sandi baru pengguna.
tenantId string ID tenant pengguna yang meminta reset sandi. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
email string Alamat email pengguna.
requestType string Jenis kode tindakan email. Harus berupa "PASSWORD_RESET".

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
  "email": "[user@example.com]",
  "requestType": "PASSWORD_RESET"
}

Kode error umum

  • OPERATION_NOT_ALLOWED: Login dengan sandi dinonaktifkan untuk project ini.
  • EXPIRED_OOB_CODE: Masa berlaku kode tindakan telah berakhir.
  • INVALID_OOB_CODE: Kode tindakan tidak valid. Hal ini dapat terjadi jika kode salah format, sudah tidak berlaku, atau sudah digunakan.
  • USER_DISABLED: Akun pengguna telah dinonaktifkan oleh administrator.

Mengubah email

Anda dapat mengubah email pengguna dengan mengeluarkan permintaan POST HTTP ke endpoint setAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Header Opsional
Nama Properti Deskripsi
X-Firebase-Locale Kode bahasa yang sesuai dengan lokalitas pengguna. Meneruskan ini akan melokalkan pencabutan perubahan email yang dikirim ke pengguna.
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform untuk pengguna.
email string Email baru milik pengguna.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak.
Payload Respons
Nama Properti Jenis Deskripsi
localId string uid pengguna saat ini.
email string Alamat email pengguna.
passwordHash string Versi hash sandi.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
idToken string Token ID Identity Platform baru untuk pengguna.
refreshToken string Token refresh Identity Platform.
expiresIn string Jumlah detik masa berlaku token ID.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[GCIP_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform baru yang terkait dengan pengguna.

Contoh respons

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example2.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example2.com]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Kode error umum

  • EMAIL_EXISTS: Alamat email sudah digunakan oleh akun lain.
  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.

Ubah sandi

Anda dapat mengubah sandi pengguna dengan mengeluarkan permintaan HTTP POST ke endpoint Auth setAccountInfo.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform untuk pengguna.
sandi string Sandi baru pengguna.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak.
Payload Respons
Nama Properti Jenis Deskripsi
localId string uid pengguna saat ini.
email string Alamat email pengguna.
passwordHash string Versi hash sandi.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
idToken string Token ID Identity Platform baru untuk pengguna.
refreshToken string Token refresh Identity Platform.
expiresIn string Jumlah detik masa berlaku token ID.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[GCIP_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform baru yang terkait dengan pengguna.

Contoh respons

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example.com]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Kode error umum

  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • WEAK_PASSWORD: Sandi harus terdiri dari 6 karakter atau lebih.

Perbarui profil

Anda dapat memperbarui profil pengguna (nama tampilan / URL foto) dengan mengeluarkan permintaan HTTP POST ke endpoint Auth setAccountInfo.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform untuk pengguna.
displayName string Nama tampilan baru pengguna.
photoUrl string URL foto baru pengguna.
deleteAttribute Daftar string Daftar atribut yang akan dihapus, "DISPLAY_NAME" atau "PHOTO_URL". Tindakan ini akan membatalkan nilai ini.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak.
Payload Respons
Nama Properti Jenis Deskripsi
localId string uid pengguna saat ini.
email string Alamat email pengguna.
displayName string Nama tampilan baru pengguna.
photoUrl string URL foto baru pengguna.
passwordHash string Versi hash sandi.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
idToken string Token ID Identity Platform baru untuk pengguna.
refreshToken string Token refresh Identity Platform.
expiresIn string Jumlah detik masa berlaku token ID.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
  "localId": "tRcfmLH...",
  "email": "user@example2.com",
  "displayName": "John Doe",
  "photoUrl": "[http://localhost:8080/img1234567890/photo.png]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example2.com",
      "displayName": "John Doe",
      "photoUrl": "http://localhost:8080/img1234567890/photo.png"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Kode error umum

  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.

Mendapatkan data pengguna

Anda bisa mendapatkan data pengguna dengan mengeluarkan permintaan POST HTTP ke endpoint getAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform akun.
Payload Respons
Nama Properti Jenis Deskripsi
pengguna Daftar objek JSON Akun yang terkait dengan token ID Identity Platform yang diberikan. Lihat di bawah untuk mengetahui detail selengkapnya.
Payload Respons (konten array users)
Nama Properti Jenis Deskripsi
localId string uid pengguna saat ini.
email string Email akun.
emailVerified boolean Apakah email akun telah diverifikasi atau belum.
displayName string Nama tampilan untuk akun.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
photoUrl string URL foto untuk akun.
passwordHash string Versi hash sandi.
passwordUpdatedAt double Stempel waktu, dalam milidetik, saat sandi akun terakhir kali diubah.
validSince string Stempel waktu, dalam detik, yang menandai batas, sebelum token ID Identity Platform dianggap dicabut.
dinonaktifkan boolean Apakah akun dinonaktifkan atau tidak.
lastLoginAt string Stempel waktu, dalam milidetik, saat akun terakhir kali login.
createdAt string Stempel waktu, dalam milidetik, saat akun dibuat.
customAuth boolean Apakah akun diautentikasi oleh developer.
tenantId string ID tenant pengguna. Hanya ditampilkan dalam multi-tenancy.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons akan berisi semua informasi pengguna yang terkait dengan akun.

Contoh respons

{
  "users": [
    {
      "localId": "ZY1rJK0...",
      "email": "user@example.com",
      "emailVerified": false,
      "displayName": "John Doe",
      "providerUserInfo": [
        {
          "providerId": "password",
          "displayName": "John Doe",
          "photoUrl": "http://localhost:8080/img1234567890/photo.png",
          "federatedId": "user@example.com",
          "email": "user@example.com",
          "rawId": "user@example.com",
          "screenName": "user@example.com"
        }
      ],
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
      "passwordHash": "...",
      "passwordUpdatedAt": 1.484124177E12,
      "validSince": "1484124177",
      "disabled": false,
      "lastLoginAt": "1484628946000",
      "createdAt": "1484124142000",
      "customAuth": false
    }
  ]
}

Kode error umum

  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • USER_NOT_FOUND: Tidak ada data pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Anda dapat menautkan email/sandi ke pengguna saat ini dengan mengeluarkan permintaan POST HTTP ke endpoint setAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform dari akun yang ingin Anda tautkan kredensialnya.
email string Email yang akan ditautkan ke akun.
sandi string Sandi baru akun.
returnSecureToken string Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
Payload Respons
Nama Properti Jenis Deskripsi
localId string uid pengguna saat ini.
email string Email akun.
displayName string Nama tampilan untuk akun.
photoUrl string URL foto untuk akun.
passwordHash string Versi hash sandi.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
emailVerified boolean Apakah email akun telah diverifikasi atau belum.
idToken string Token ID Identity Platform baru untuk pengguna.
refreshToken string Token refresh Identity Platform.
expiresIn string Jumlah detik masa berlaku token ID.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang telah diautentikasi.

Contoh respons

{
  "localId": "huDwUz...",
  "email": "user@example.com",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ],
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "emailVerified": false
}

Kode error umum

  • CREDENTIAL_TOO_OLD_LOGIN_AGAIN: Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • TOKEN_EXPIRED: Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • WEAK_PASSWORD: Sandi harus terdiri dari 6 karakter atau lebih.

Anda dapat menautkan kredensial OAuth ke pengguna dengan mengeluarkan permintaan HTTP POST ke endpoint Auth verifyAssertion.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform dari akun yang ingin Anda tautkan kredensialnya.
requestUri string URI tempat IdP mengalihkan pengguna kembali.
postBody string Berisi kredensial OAuth (token ID atau token akses) dan ID penyedia yang menerbitkan kredensial.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
returnIdpCredential boolean Apakah akan memaksa pengembalian kredensial OAuth pada error berikut: FEDERATED_USER_ID_ALREADY_LINKED dan EMAIL_EXISTS.
Payload Respons
Nama Properti Jenis Deskripsi
federatedId string ID unik mengidentifikasi akun IdP.
providerId string ID penyedia yang terhubung (misalnya "google.com" untuk penyedia Google).
localId string uid pengguna yang diautentikasi.
emailVerified boolean Apakah email login diverifikasi.
email string Email akun.
oauthIdToken string Token ID OIDC jika tersedia.
oauthAccessToken string Token akses OAuth jika tersedia.
oauthTokenSecret string Rahasia token OAuth 1.0 jika tersedia.
rawUserInfo string Respons JSON yang di-stringify yang berisi semua data IdP yang sesuai dengan kredensial OAuth yang diberikan.
firstName string Nama depan untuk akun.
lastName string Nama belakang untuk akun.
fullName string Nama lengkap untuk akun.
displayName string Nama tampilan untuk akun.
photoUrl string URL foto untuk akun.
idToken string Token ID Identity Platform untuk pengguna yang diautentikasi.
refreshToken string Token refresh Identity Platform untuk pengguna yang diautentikasi.
expiresIn string Jumlah detik masa berlaku token ID.

Contoh permintaan dengan token ID OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang diautentikasi.

Contoh respons dengan token ID OAuth

{
  "federatedId": "https://accounts.google.com/1234567890",
  "providerId": "google.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthIdToken": "[GOOGLE_ID_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Contoh permintaan dengan token akses OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[GCIP_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang diautentikasi.

Contoh respons dengan token akses OAuth

{
  "federatedId": "http://facebook.com/1234567890",
  "providerId": "facebook.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://scontent.xx.fbcdn.net/v/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Contoh permintaan dengan kredensial OAuth 1.0 Twitter

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK. Respons berisi token ID dan token refresh Identity Platform yang terkait dengan pengguna yang diautentikasi.

Contoh respons dengan kredensial OAuth 1.0 Twitter

{
  "federatedId": "http://twitter.com/1234567890",
  "providerId": "twitter.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]",
  "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "http://abs.twimg.com/sticky/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Kode error umum

  • OPERATION_NOT_ALLOWED: Penyedia yang sesuai dinonaktifkan untuk project ini.
  • INVALID_IDP_RESPONSE: Kredensial autentikasi yang diberikan salah formatnya atau sudah tidak berlaku.
  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • EMAIL_EXISTS: Alamat email sudah digunakan oleh akun lain.
  • FEDERATED_USER_ID_ALREADY_LINKED: Kredensial ini sudah dikaitkan dengan akun pengguna yang berbeda.

Anda dapat membatalkan tautan penyedia dari pengguna saat ini dengan mengeluarkan permintaan POST HTTP ke endpoint setAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform akun.
deleteProvider Daftar string Daftar ID penyedia yang akan dibatalkan tautannya, misalnya: 'google.com', 'password', dll.
Payload Respons
Nama Properti Jenis Deskripsi
localId string uid pengguna saat ini.
email string Email akun.
displayName string Nama tampilan untuk akun.
photoUrl string URL foto untuk akun.
passwordHash string Versi hash sandi.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
emailVerified boolean Apakah email akun telah diverifikasi atau belum.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"idToken":"[GCIP_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
  "localId": "huDwUz...",
  "email": "user@example.com",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "google.com",
      "federatedId": "1234567890",
      "displayName": "John Doe",
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg"
    },
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ],
  "emailVerified": "true"
}

Kode error umum

  • INVALID_ID_TOKEN: Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.

Mengirim verifikasi email

Anda dapat mengirim verifikasi email untuk pengguna saat ini dengan mengeluarkan permintaan POST HTTP ke endpoint getOobConfirmationCode Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Header Opsional
Nama Properti Deskripsi
X-Firebase-Locale Kode bahasa yang sesuai dengan lokalitas pengguna. Meneruskan ini akan melokalkan verifikasi email yang dikirim ke pengguna.
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
requestType string Jenis kode konfirmasi yang akan dikirim. Harus selalu "VERIFY_EMAIL".
idToken string Token ID Identity Platform pengguna yang akan diverifikasi.
Payload Respons
Nama Properti Jenis Deskripsi
email string Email akun.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[GCIP_ID_TOKEN]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
  "email": "user@example.com"
}

Kode error umum

  • INVALID_ID_TOKEN: Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • USER_NOT_FOUND: Tidak ada data pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Mengonfirmasi verifikasi email

Anda dapat mengonfirmasi kode verifikasi email dengan mengeluarkan permintaan POST HTTP ke endpoint setAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
oobCode string Kode tindakan yang dikirim ke email pengguna untuk verifikasi email.
tenantId string ID tenant pengguna yang memverifikasi email. Hanya digunakan dalam multi-tenancy.
Payload Respons
Nama Properti Jenis Deskripsi
email string Email akun.
displayName string Nama tampilan untuk akun.
photoUrl string URL foto untuk akun.
passwordHash string Hash sandi.
providerUserInfo Daftar objek JSON Daftar semua objek penyedia tertaut yang berisi "providerId" dan "federatedId".
emailVerified boolean Apakah email akun telah diverifikasi atau belum.

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Contoh respons

{
  "localId": "FhyStE...",
  "email": "user@example.com",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ]
}

Kode error umum

  • EXPIRED_OOB_CODE: Masa berlaku kode tindakan telah berakhir.
  • INVALID_OOB_CODE: Kode tindakan tidak valid. Hal ini dapat terjadi jika kode salah format, sudah tidak berlaku, atau sudah digunakan.
  • USER_DISABLED: Akun pengguna telah dinonaktifkan oleh administrator.
  • EMAIL_NOT_FOUND: Tidak ada data pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Hapus akun

Anda dapat menghapus pengguna saat ini dengan mengeluarkan permintaan POST HTTP ke endpoint deleteAccount Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Payload Isi Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform pengguna yang akan dihapus.
Payload Respons
Nama Properti Jenis Deskripsi

Contoh permintaan

curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'

Permintaan yang berhasil ditunjukkan dengan kode status HTTP 200 OK.

Kode error umum

  • INVALID_ID_TOKEN:Kredensial pengguna tidak lagi valid. Pengguna harus login lagi.
  • USER_NOT_FOUND: Tidak ada data pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Menangani error

Berikut adalah contoh error umum yang ditampilkan oleh Identity Platform:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalid",
        "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
      }
    ],
    "code": 400,
    "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
  }
}

Dapatkan kode error dari kolom message.