Menggunakan REST API

Dokumen ini menunjukkan cara melakukan operasi pengguna yang umum, seperti membuat pengguna login 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 Identity Provider di Konsol Google Cloud.
    Buka halaman Penyedia Identitas

  2. Klik Detail penyiapan aplikasi.

  3. Menyalin kolom apiKey.

Perhatikan bahwa HTTPS diperlukan untuk semua panggilan API.

Memanggil API

Tukar token kustom dengan ID dan token refresh

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
token string Token kustom Identity Platform yang digunakan untuk membuat pasangan token ID dan 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 Algoritma Harus RS256.
iss Penerbit Alamat email akun layanan project Anda.
sub Subjek Alamat email akun layanan project Anda.
aud Audience https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit
iat Waktu penerbitan Waktu saat ini, dalam 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, antara 1-36 karakter.
tenant_id ID Tenant ID tenant yang digunakan pengguna untuk login.
klaim (opsional) Klaim kustom opsional yang akan disertakan dalam variabel Aturan Keamanan auth atau request.auth.
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 saat token ID berakhir.

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. Responsnya berisi token ID Identity Platform dan token refresh 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 beberapa alasan (misalnya sudah tidak berlaku, tanda tangan tidak valid, dll.)
  • CREDENTIAL_MISMATCH: Token kustom sesuai dengan project Google Cloud lain.

Tukar token refresh dengan token ID

Anda dapat memperbarui token ID Platform Identitas dengan mengajukan permintaan HTTP POST 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 Body 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 saat token ID berakhir.
token_type string Jenis token refresh, selalu "Bearer".
refresh_token string Token refresh Identity Platform yang disediakan dalam permintaan atau token refresh baru.
id_token string Token ID Identity Platform.
user_id string Uid yang sesuai dengan token ID yang disediakan.
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. Responsnya berisi token ID Identity Platform dan token refresh yang 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. Sepertinya pengguna telah dihapus.
  • Kunci API tidak valid. Teruskan kunci API yang valid. (kunci API yang diberikan tidak valid)
  • INVALID_REFRESH_TOKEN: Token refresh yang tidak valid diberikan.
  • Payload JSON yang tidak valid diterima. Nama tidak diketahui \"refresh_tokens\": Tidak dapat mengikat parameter kueri. Kolom 'refresh_tokens' tidak dapat ditemukan dalam pesan permintaan.
  • INVALID_GRANT_TYPE: Jenis pemberian yang ditentukan tidak valid.
  • INVALID_REFRESH_TOKEN: Tidak ada token pembaruan yang disediakan.
  • PROJECT_NUMBER_MISMATCH: Nomor project token refresh tidak cocok dengan nomor kunci API yang diberikan.

Daftar dengan email / sandi

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
email string Email yang akan dibuat pengguna.
sandi string Sandi yang akan dibuat oleh 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 Platform Identitas 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 saat token ID berakhir.
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. Responsnya berisi token ID Identity Platform dan token refresh 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 sandi dinonaktifkan untuk project ini.
  • TOO_MANY_TryS_TRY_LATER: Kami telah memblokir semua permintaan dari perangkat ini karena aktivitas yang tidak biasa. Coba lagi nanti.

Login dengan email / sandi

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Payload Body 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 saat token ID berakhir.
localId string Uid pengguna terautentikasi.
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 Identity Platform dan token refresh yang terkait dengan akun email/sandi yang sudah 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 catatan 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 mengajukan permintaan HTTP POST ke endpoint signupNewUser Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Payload Body 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 Platform Identitas untuk pengguna yang baru dibuat.
email string Karena pengguna bersifat anonim, kolom ini harus dikosongkan.
refreshToken string Token refresh Identity Platform untuk pengguna yang baru dibuat.
expiresIn string Jumlah detik saat token ID berakhir.
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. Responsnya berisi token ID Identity Platform dan token refresh 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 menggunakan kredensial OAuth dengan mengeluarkan permintaan HTTP POST ke endpoint verifyAssertion Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
requestUri string URI yang IDP mengalihkan kembali pengguna.
postBody string Berisi kredensial OAuth (token ID atau token akses) dan ID penyedia yang mengeluarkan kredensial.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
returnIdpCredential boolean Apakah ingin mengembalikan kredensial OAuth secara paksa 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 terautentikasi.
emailVerified boolean Apakah email login telah 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 string yang berisi semua data IdP yang sesuai dengan kredensial OAuth yang diberikan.
firstName string Nama depan akun.
lastName string Nama belakang akun.
fullName string Nama lengkap akun.
displayName string Nama tampilan 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 saat token ID berakhir.
needConfirmation boolean Apakah akun lain dengan kredensial yang sama sudah ada. Pengguna harus login ke akun asli, lalu menautkan kredensial saat ini ke akun asli 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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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: Format kredensial autentikasi yang diberikan salah atau sudah tidak berlaku.

Mengambil penyedia untuk email

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
ID string Alamat email pengguna
continueUri string URI yang IDP mengalihkan kembali pengguna. Untuk kasus penggunaan ini, ini hanya 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 ditujukan 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 akan berisi daftar penyedia yang terkait dengan email.

Contoh respons

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

Kode error umum

  • INVALID_EMAIL: Format alamat email tidak benar.

Kirim email reset sandi

Anda dapat mengirim email reset sandi dengan mengajukan permintaan HTTP POST 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-Lokal Kode bahasa yang sesuai dengan lokalitas pengguna. Meneruskan ini akan melokalkan email reset sandi yang dikirimkan kepada pengguna.
Payload Body 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 catatan pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Memverifikasi kode reset sandi

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Payload Body 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 "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 sandi dinonaktifkan untuk project ini.
  • EXPIRED_OOB_CODE: Kode tindakan telah kedaluwarsa.
  • INVALID_OOB_CODE: Kode tindakan tidak valid. Hal ini dapat terjadi jika kode salah format, sudah tidak berlaku, atau sudah digunakan.

Konfirmasi reset sandi

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Payload Body 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 "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 sandi dinonaktifkan untuk project ini.
  • EXPIRED_OOB_CODE: Kode tindakan telah kedaluwarsa.
  • 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.

Ubah email

Anda dapat mengubah email pengguna dengan mengajukan permintaan HTTP POST 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-Lokal Kode bahasa yang sesuai dengan lokalitas pengguna. Meneruskan ini akan melokalkan pencabutan perubahan email yang dikirim ke pengguna.
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Platform Identitas untuk pengguna.
email string Email 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 saat token ID berakhir.

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 Platform Identitas baru dan token refresh 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 mengajukan permintaan HTTP POST ke endpoint setAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Platform Identitas 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 saat token ID berakhir.

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 Platform Identitas baru dan token refresh 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: Panjang sandi harus 6 karakter atau lebih.

Memperbarui profil

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Platform Identitas 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 menghapus 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 saat token ID berakhir.

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 HTTP POST ke endpoint getAccountInfo Auth.

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Platform Identitas 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 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 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 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. Responsnya 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 catatan pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform dari akun yang Anda coba tautkan dengan kredensial.
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 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 saat token ID berakhir.

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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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 sudah tidak 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: Panjang sandi harus 6 karakter atau lebih.

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Identity Platform dari akun yang Anda coba tautkan dengan kredensial.
requestUri string URI yang IDP mengalihkan kembali pengguna.
postBody string Berisi kredensial OAuth (token ID atau token akses) dan ID penyedia yang mengeluarkan kredensial.
returnSecureToken boolean Apakah akan menampilkan ID dan token refresh atau tidak. Harus selalu benar.
returnIdpCredential boolean Apakah ingin mengembalikan kredensial OAuth secara paksa 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 terautentikasi.
emailVerified boolean Apakah email login telah 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 string yang berisi semua data IdP yang sesuai dengan kredensial OAuth yang diberikan.
firstName string Nama depan akun.
lastName string Nama belakang akun.
fullName string Nama lengkap akun.
displayName string Nama tampilan 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 saat token ID berakhir.

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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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 Identity Platform dan token refresh yang terkait dengan pengguna terautentikasi.

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: Format kredensial autentikasi yang diberikan salah 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 lain.

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Platform Identitas 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 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.

Kirim verifikasi email

Anda dapat mengirim verifikasi email untuk pengguna saat ini dengan mengeluarkan permintaan HTTP POST 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-Lokal Kode bahasa yang sesuai dengan lokalitas pengguna. Meneruskan ini akan melokalkan verifikasi email yang dikirim kepada pengguna.
Payload Body Permintaan
Nama Properti Jenis Deskripsi
requestType string Jenis kode konfirmasi yang akan dikirim. Harus selalu "VERIFIKASI_EMAIL".
idToken string Token ID Platform Identitas 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 catatan pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Konfirmasi verifikasi email

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload Body 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 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: Kode tindakan telah kedaluwarsa.
  • 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 catatan pengguna yang sesuai dengan ID ini. Pengguna mungkin telah dihapus.

Hapus akun

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

Metode: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Payload Body Permintaan
Nama Properti Jenis Deskripsi
idToken string Token ID Platform Identitas 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 catatan 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.