使用 REST API
本文說明如何使用 Identity Platform REST API 執行常見的使用者作業,例如登入使用者和使用權杖。
事前準備
如要使用 REST API,您必須具備 Identity Platform API 金鑰。取得金鑰的方法如下:
前往 Google Cloud 控制台的「Identity Providers」頁面。
前往「Identity Providers」(識別資訊提供者) 頁面按一下「Application setup details」(應用程式設定詳細資料)。
複製
apiKey
欄位。
請注意,所有 API 呼叫都必須透過 HTTPS 傳送。
呼叫 API
將自訂權杖換成 ID 和重新整理權杖
您可以向 signInWithCustomToken
端點發出 HTTP POST
要求,將自訂驗證權杖換成 ID 和重新整理權杖。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
token | 字串 | Identity Platform 自訂權杖,可用於建立 ID 和重新整理權杖配對。 |
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。應一律為 true。 |
tenantId | 字串 | 使用者登入的租用戶 ID。僅用於多租戶環境。 必須與權杖中的 tenant_id 相符。 |
屬性 | 名稱 | 說明 |
---|---|---|
alg | 演算法 | 應為 RS256 。 |
iss | 核發單位 | 專案的服務帳戶電子郵件地址。 |
子 | 主旨 | 專案的服務帳戶電子郵件地址。 |
aud | 目標對象 | https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit |
iat | 核發時間 | 目前時間,以自 Unix Epoch 紀元時間起算的秒數為單位。 |
exp | 到期時間 | 權杖到期時間,以自 Unix 紀元時間起算的秒數為單位。比 iat 晚最多 3600 秒。注意:這項設定只會控制自訂權杖本身的到期時間。不過,一旦您使用 signInWithCustomToken() 為使用者登入,他們就會持續登入裝置,直到工作階段失效或使用者登出為止。 |
uid | 使用者 ID | 使用者的專屬 ID,長度介於 1 到 36 個字元。 |
tenant_id | 用戶群 ID | 使用者登入的租用戶 ID。 |
claims (選填) | 可選的專屬宣告,可納入安全性規則 auth 或 request.auth 變數。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 由提供的自訂權杖產生的 Identity Platform ID 權杖。 |
refreshToken | 字串 | 系統會根據提供的自訂權杖產生 Identity Platform 更新權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
要求範例
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含 Identity Platform ID 權杖和與自訂權杖相關聯的重新整理權杖。
回應範例
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
常見錯誤代碼
- INVALID_CUSTOM_TOKEN:自訂權杖格式不正確,或權杖因某些原因而無效 (例如已過期、簽章無效等)
- CREDENTIAL_MISMATCH:自訂權杖對應至其他 Google Cloud 專案。
將更新權杖換成 ID 權杖
您可以向 securetoken.googleapis.com
端點發出 HTTP POST
要求,藉此重新整理 Identity Platform ID 權杖。
方法:POST
Content-Type: application/x-www-form-urlencoded
端點https://securetoken.googleapis.com/v1/token?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
grant_type | 字串 | 更新權杖的授權類型,一律為「refresh_token」。 |
refresh_token | 字串 | Identity Platform 更新權杖。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
expires_in | 字串 | ID 權杖的到期秒數。 |
token_type | 字串 | 重新整理權杖的類型,一律為「Bearer」。 |
refresh_token | 字串 | 要求中提供的 Identity Platform 更新權杖或新的更新權杖。 |
id_token | 字串 | Identity Platform ID 權杖。 |
user_id | 字串 | 與提供的 ID 權杖相對應的使用者 ID。 |
project_id | 字串 | 您的 Google Cloud 專案 ID。 |
要求範例
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]'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含新的 Identity Platform ID 權杖和重新整理權杖。
回應範例
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
常見錯誤代碼
- TOKEN_EXPIRED:使用者的憑證已失效。使用者必須重新登入。
- USER_DISABLED:使用者帳戶已遭管理員停用。
- USER_NOT_FOUND:找不到與重新整理權杖相對應的使用者。使用者很可能已遭刪除。
- API 金鑰無效。請傳遞有效的 API 金鑰。(提供的 API 金鑰無效)
- INVALID_REFRESH_TOKEN:提供的更新權杖無效。
- 收到無效的 JSON 酬載。不明名稱「refresh_tokens」:無法繫結查詢參數。要求訊息中找不到「refresh_tokens」欄位。
- INVALID_GRANT_TYPE:指定的授權類型無效。
- MISSING_REFRESH_TOKEN:未提供重新整理權杖。
- PROJECT_NUMBER_MISMATCH:重新整理權杖的專案編號與提供的 API 金鑰不符。
使用電子郵件地址 / 密碼註冊
您可以向 Auth signupNewUser
端點發出 HTTP POST
要求,建立新的電子郵件和密碼使用者。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 使用者要建立的電子郵件地址。 |
密碼 | 字串 | 使用者要建立的密碼。 |
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。應一律為 true。 |
tenantId | 字串 | 要建立的使用者租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 新建立使用者的 Identity Platform ID 權杖。 |
電子郵件 | 字串 | 新建立使用者的電子郵件地址。 |
refreshToken | 字串 | 新建立使用者的 Identity Platform 重新整理權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
localId | 字串 | 新建立使用者的 uid。 |
要求範例
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與新帳戶相關聯的 Identity Platform ID 權杖和更新權杖。
回應範例
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
常見錯誤代碼
- EMAIL_EXISTS:電子郵件地址已由其他帳戶使用。
- OPERATION_NOT_ALLOWED:這項專案已停用密碼登入功能。
- TOO_MANY_ATTEMPTS_TRY_LATER:由於出現異常活動,系統已封鎖來自這部裝置的所有要求。請稍後再試。
使用電子郵件地址 / 密碼登入
您可以向 Auth verifyPassword
端點發出 HTTP POST
要求,以電子郵件和密碼登入使用者。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 使用者用來登入的電子郵件地址。 |
密碼 | 字串 | 帳戶密碼。 |
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。應一律為 true。 |
tenantId | 字串 | 使用者登入的租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 經過驗證的使用者所需的 Identity Platform ID 權杖。 |
電子郵件 | 字串 | 已驗證使用者的電子郵件地址。 |
refreshToken | 字串 | 已驗證使用者的 Identity Platform 重新整理權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
localId | 字串 | 已驗證使用者的 uid。 |
已註冊 | 布林值 | 電子郵件地址是否屬於現有帳戶。 |
要求範例
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與現有電子郵件/密碼帳戶相關聯的 Identity Platform ID 權杖和重新整理權杖。
回應範例
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
常見錯誤代碼
- EMAIL_NOT_FOUND:沒有對應於此 ID 的使用者記錄。使用者可能已遭到刪除。
- INVALID_PASSWORD:密碼無效或使用者未設定密碼。
- USER_DISABLED:使用者帳戶已遭管理員停用。
匿名登入
您可以向 Auth signupNewUser
端點發出 HTTP POST
要求,以匿名方式登入使用者。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。應一律為 true。 |
tenantId | 字串 | 使用者登入的租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 新建立使用者的 Identity Platform ID 權杖。 |
電子郵件 | 字串 | 由於使用者是匿名的,因此這個值應為空白。 |
refreshToken | 字串 | 新建立使用者的 Identity Platform 重新整理權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
localId | 字串 | 新建立使用者的 uid。 |
要求範例
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與匿名使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
回應範例
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
常見錯誤代碼
- OPERATION_NOT_ALLOWED:這項專案已停用匿名使用者登入功能。
使用 OAuth 憑證登入
您可以向 Auth verifyAssertion
端點發出 HTTP POST
要求,讓使用者登入 OAuth 憑證。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
requestUri | 字串 | IdP 將使用者重新導向的 URI。 |
postBody | 字串 | 包含 OAuth 憑證 (ID 權杖或存取權杖) 和發出憑證的供應商 ID。 |
returnSecureToken | 布林值 | 是否傳回 ID 和重新整理權杖。應一律為 true。 |
returnIdpCredential | 布林值 | 是否要強制在發生以下錯誤時傳回 OAuth 憑證:FEDERATED_USER_ID_ALREADY_LINKED 和 EMAIL_EXISTS。 |
tenantId | 字串 | 使用者登入的租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
federatedId | 字串 | 這個專屬 ID 可識別 ID 提供者帳戶。 |
providerId | 字串 | 已連結的供應商 ID (例如 Google 供應商的「google.com」)。 |
localId | 字串 | 已驗證使用者的 uid。 |
emailVerified | 布林值 | 登入電子郵件是否已通過驗證。 |
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
oauthIdToken | 字串 | OIDC ID 權杖 (如有)。 |
oauthAccessToken | 字串 | OAuth 存取權杖 (如有)。 |
oauthTokenSecret | 字串 | OAuth 1.0 憑證密鑰 (如有)。 |
rawUserInfo | 字串 | 字串化 JSON 回應,其中包含與提供的 OAuth 憑證相對應的所有 IdP 資料。 |
firstName | 字串 | 帳戶的名字。 |
lastName | 字串 | 帳戶的姓氏。 |
fullName | 字串 | 帳戶的全名。 |
displayName | 字串 | 帳戶的顯示名稱。 |
photoUrl | 字串 | 帳戶的相片網址。 |
idToken | 字串 | 經過驗證的使用者所需的 Identity Platform ID 權杖。 |
refreshToken | 字串 | 已驗證使用者的 Identity Platform 重新整理權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
needConfirmation | 布林值 | 是否已存在另一個使用相同憑證的帳戶。使用者必須登入原始帳戶,然後將目前的憑證連結至該帳戶。 |
含有 OAuth ID 權杖的示例要求
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
含有 OAuth ID 權杖的範例回應
{ "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\", ...}" }
含有 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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
含有 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\", ...}" }
使用 Twitter OAuth 1.0 憑證的示例要求
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
使用 Twitter OAuth 1.0 憑證的範例回應
{ "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\", ...}" }
常見錯誤代碼
- OPERATION_NOT_ALLOWED:這個專案已停用對應的供應商。
- INVALID_IDP_RESPONSE:提供的驗證憑證格式錯誤或已過期。
擷取電子郵件供應商
您可以向 Auth createAuthUri
端點發出 HTTP POST
要求,查看與特定電子郵件相關聯的所有供應商。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
ID | 字串 | 使用者的電子郵件地址 |
continueUri | 字串 | IdP 將使用者重新導向的 URI。在這個用途中,這只是目前的網址。 |
tenantId | 字串 | 使用者登入的租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
allProviders | 字串清單 | 使用者先前登入的供應商清單。 |
已註冊 | 布林值 | 電子郵件是否屬於現有帳戶 |
要求範例
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]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應會包含與電子郵件相關聯的供應商清單。
回應範例
{ "allProviders": [ "password", "google.com" ], "registered": true }
常見錯誤代碼
- INVALID_EMAIL:電子郵件地址格式不正確。
傳送密碼重設電子郵件
您可以向 Auth getOobConfirmationCode
端點發出 HTTP POST
要求,傳送密碼重設電子郵件。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
屬性名稱 | 說明 |
---|---|
X-Firebase-Locale | 對應使用者語言代碼的語言代碼。傳遞此值後,系統會將傳送給使用者的密碼重設電子郵件本地化。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
requestType | 字串 | 要傳回的 OOB 代碼類型。如要重設密碼,應為「PASSWORD_RESET」。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
tenantId | 字串 | 要求重設密碼的使用者租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 使用者的電子郵件地址。 |
要求範例
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]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "email": "[user@example.com]" }
常見錯誤代碼
- EMAIL_NOT_FOUND:沒有與此 ID 相對應的使用者記錄。使用者可能已遭到刪除。
驗證密碼重設碼
您可以向 Auth resetPassword
端點發出 HTTP POST
要求,藉此驗證密碼重設碼。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
oobCode | 字串 | 傳送給使用者電子郵件地址的電子郵件動作代碼,用於重設密碼。 |
tenantId | 字串 | 要求重設密碼的使用者租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 使用者的電子郵件地址。 |
requestType | 字串 | 電子郵件動作代碼的類型。應為「PASSWORD_RESET」。 |
要求範例
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
常見錯誤代碼
- OPERATION_NOT_ALLOWED:這項專案已停用密碼登入功能。
- EXPIRED_OOB_CODE:動作代碼已過期。
- INVALID_OOB_CODE:動作代碼無效。如果代碼格式不正確、已過期或已使用,就可能發生這種情況。
確認重設密碼
您可以向 Auth resetPassword
端點發出 HTTP POST
要求,藉此套用密碼重設變更。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
oobCode | 字串 | 傳送給使用者電子郵件地址的電子郵件動作代碼,用於重設密碼。 |
newPassword | 字串 | 使用者的新密碼。 |
tenantId | 字串 | 要求重設密碼的使用者租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 使用者的電子郵件地址。 |
requestType | 字串 | 電子郵件動作代碼的類型。應為「PASSWORD_RESET」。 |
要求範例
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]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
常見錯誤代碼
- OPERATION_NOT_ALLOWED:這項專案已停用密碼登入功能。
- EXPIRED_OOB_CODE:動作代碼已過期。
- INVALID_OOB_CODE:動作代碼無效。如果代碼格式不正確、已過期或已使用,就可能發生這種情況。
- USER_DISABLED:使用者帳戶已遭管理員停用。
變更電子郵件地址
您可以向 Auth setAccountInfo
端點發出 HTTP POST
要求,藉此變更使用者的電子郵件地址。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
屬性名稱 | 說明 |
---|---|
X-Firebase-Locale | 對應使用者語言代碼的語言代碼。傳遞這項值後,系統會將傳送給使用者的電子郵件變更撤銷內容本地化。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 使用者的 Identity Platform ID 權杖。 |
電子郵件 | 字串 | 使用者的新電子郵件地址。 |
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
localId | 字串 | 目前使用者的 uid。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
passwordHash | 字串 | 密碼的雜湊版本。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
idToken | 字串 | 使用者的新 Identity Platform ID 權杖。 |
refreshToken | 字串 | Identity Platform 更新權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
要求範例
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與使用者相關聯的新 Identity Platform ID 權杖和重新整理權杖。
回應範例
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
常見錯誤代碼
- EMAIL_EXISTS:電子郵件地址已由其他帳戶使用。
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
變更密碼
您可以向 Auth setAccountInfo
端點發出 HTTP POST
要求,藉此變更使用者的密碼。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 使用者的 Identity Platform ID 權杖。 |
密碼 | 字串 | 使用者的新密碼。 |
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
localId | 字串 | 目前使用者的 uid。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
passwordHash | 字串 | 密碼的雜湊版本。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
idToken | 字串 | 使用者的新 Identity Platform ID 權杖。 |
refreshToken | 字串 | Identity Platform 更新權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
要求範例
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與使用者相關聯的新 Identity Platform ID 權杖和重新整理權杖。
回應範例
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
- WEAK_PASSWORD:密碼長度必須為 6 個字元以上。
更新設定檔
您可以向 Auth setAccountInfo
端點發出 HTTP POST
要求,藉此更新使用者的個人資料 (顯示名稱 / 相片網址)。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 使用者的 Identity Platform ID 權杖。 |
displayName | 字串 | 使用者的新顯示名稱。 |
photoUrl | 字串 | 使用者的新相片網址。 |
deleteAttribute | 字串清單 | 要刪除的屬性清單,包括「DISPLAY_NAME」或「PHOTO_URL」。這會使這些值失效。 |
returnSecureToken | 布林值 | 是否要傳回 ID 和重新整理權杖。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
localId | 字串 | 目前使用者的 uid。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
displayName | 字串 | 使用者的新顯示名稱。 |
photoUrl | 字串 | 使用者的新相片網址。 |
passwordHash | 字串 | 密碼的雜湊版本。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
idToken | 字串 | 使用者的新 Identity Platform ID 權杖。 |
refreshToken | 字串 | Identity Platform 更新權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
要求範例
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "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" }
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
取得使用者資料
您可以向 Auth getAccountInfo
端點發出 HTTP POST
要求,取得使用者資料。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 帳戶的 Identity Platform ID 權杖。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
使用者 | JSON 物件清單 | 與指定 Identity Platform ID 權杖相關聯的帳戶。詳情請參閱下文。 |
users
陣列內容)
屬性名稱 | 類型 | 說明 |
---|---|---|
localId | 字串 | 目前使用者的 uid。 |
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
emailVerified | 布林值 | 帳戶的電子郵件是否已驗證。 |
displayName | 字串 | 帳戶的顯示名稱。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
photoUrl | 字串 | 帳戶的相片網址。 |
passwordHash | 字串 | 密碼的雜湊版本。 |
passwordUpdatedAt | 雙精度值 | 帳戶密碼上次變更的時間戳記,以毫秒為單位。 |
validSince | 字串 | 以秒為單位的時間戳記,標示 Identity Platform ID 權杖的撤銷時間點。 |
已停用 | 布林值 | 帳戶是否已停用。 |
lastLoginAt | 字串 | 帳戶上次登入的時間戳記,以毫秒為單位。 |
createdAt | 字串 | 帳戶建立時間戳記 (以毫秒為單位)。 |
customAuth | 布林值 | 帳戶是否已通過開發人員驗證。 |
tenantId | 字串 | 使用者的租用戶 ID。只有在多用戶群架構中才會傳回。 |
要求範例
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應會包含與帳戶相關聯的所有使用者資訊。
回應範例
{ "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 } ] }
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
- USER_NOT_FOUND:沒有與此 ID 對應的使用者記錄。使用者可能已遭到刪除。
使用電子郵件/密碼連結
您可以向 Auth setAccountInfo
端點發出 HTTP POST
要求,將電子郵件/密碼連結至目前的使用者。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 您要連結憑證的帳戶 Identity Platform ID 權杖。 |
電子郵件 | 字串 | 要連結至帳戶的電子郵件地址。 |
密碼 | 字串 | 帳戶的新密碼。 |
returnSecureToken | 字串 | 是否傳回 ID 和重新整理權杖。一律應為 true。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
localId | 字串 | 目前使用者的 uid。 |
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
displayName | 字串 | 帳戶的顯示名稱。 |
photoUrl | 字串 | 帳戶的相片網址。 |
passwordHash | 字串 | 密碼的雜湊版本。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
emailVerified | 布林值 | 帳戶的電子郵件是否已驗證。 |
idToken | 字串 | 使用者的新 Identity Platform ID 權杖。 |
refreshToken | 字串 | Identity Platform 更新權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
要求範例
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
回應範例
{ "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 }
常見錯誤代碼
- CREDENTIAL_TOO_OLD_LOGIN_AGAIN:使用者的憑證已失效。使用者必須重新登入。
- TOKEN_EXPIRED:使用者的憑證已失效。使用者必須重新登入。
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
- WEAK_PASSWORD:密碼長度必須為 6 個字元以上。
連結 OAuth 憑證
您可以向 Auth verifyAssertion
端點發出 HTTP POST
要求,將 OAuth 憑證連結至使用者。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 您要連結憑證的帳戶 Identity Platform ID 權杖。 |
requestUri | 字串 | IdP 將使用者重新導向的 URI。 |
postBody | 字串 | 包含 OAuth 憑證 (ID 權杖或存取權杖) 和發出憑證的供應商 ID。 |
returnSecureToken | 布林值 | 是否傳回 ID 和重新整理權杖。應一律為 true。 |
returnIdpCredential | 布林值 | 是否要強制在發生以下錯誤時傳回 OAuth 憑證:FEDERATED_USER_ID_ALREADY_LINKED 和 EMAIL_EXISTS。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
federatedId | 字串 | 這個專屬 ID 可識別 ID 提供者帳戶。 |
providerId | 字串 | 已連結的供應商 ID (例如 Google 供應商的「google.com」)。 |
localId | 字串 | 已驗證使用者的 uid。 |
emailVerified | 布林值 | 登入電子郵件是否已通過驗證。 |
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
oauthIdToken | 字串 | OIDC ID 權杖 (如有)。 |
oauthAccessToken | 字串 | OAuth 存取權杖 (如有)。 |
oauthTokenSecret | 字串 | OAuth 1.0 憑證密鑰 (如有)。 |
rawUserInfo | 字串 | 字串化 JSON 回應,其中包含與提供的 OAuth 憑證相對應的所有 IdP 資料。 |
firstName | 字串 | 帳戶的名字。 |
lastName | 字串 | 帳戶的姓氏。 |
fullName | 字串 | 帳戶的全名。 |
displayName | 字串 | 帳戶的顯示名稱。 |
photoUrl | 字串 | 帳戶的相片網址。 |
idToken | 字串 | 經過驗證的使用者所需的 Identity Platform ID 權杖。 |
refreshToken | 字串 | 已驗證使用者的 Identity Platform 重新整理權杖。 |
expiresIn | 字串 | ID 權杖的到期秒數。 |
含有 OAuth ID 權杖的示例要求
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
含有 OAuth ID 權杖的範例回應
{ "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\", ...}" }
含有 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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
含有 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\", ...}" }
使用 Twitter OAuth 1.0 憑證的示例要求
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}'
成功的要求會以 200 OK
HTTP 狀態碼表示。回應中包含與已驗證使用者相關聯的 Identity Platform ID 權杖和重新整理權杖。
使用 Twitter OAuth 1.0 憑證的範例回應
{ "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\", ...}" }
常見錯誤代碼
- OPERATION_NOT_ALLOWED:這個專案已停用對應的供應商。
- INVALID_IDP_RESPONSE:提供的驗證憑證格式錯誤或已過期。
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
- EMAIL_EXISTS:電子郵件地址已由其他帳戶使用。
- FEDERATED_USER_ID_ALREADY_LINKED:這個憑證已與其他使用者帳戶建立關聯。
取消與提供者之間的連結
您可以向 Auth setAccountInfo
端點發出 HTTP POST
要求,將提供者與目前使用者取消連結。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 帳戶的 Identity Platform ID 權杖。 |
deleteProvider | 字串清單 | 要取消連結的供應商 ID 清單,例如:'google.com'、'password' 等。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
localId | 字串 | 目前使用者的 uid。 |
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
displayName | 字串 | 帳戶的顯示名稱。 |
photoUrl | 字串 | 帳戶的相片網址。 |
passwordHash | 字串 | 密碼的雜湊版本。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
emailVerified | 布林值 | 帳戶的電子郵件是否已驗證。 |
要求範例
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]"]}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "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" }
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
傳送電子郵件驗證
您可以向 Auth getOobConfirmationCode
端點發出 HTTP POST
要求,為目前使用者傳送電子郵件驗證。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
屬性名稱 | 說明 |
---|---|
X-Firebase-Locale | 對應使用者語言代碼的語言代碼。傳遞此值後,系統會將傳送給使用者的電子郵件驗證內容本地化。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
requestType | 字串 | 要傳送的確認碼類型。應一律設為「VERIFY_EMAIL」。 |
idToken | 字串 | 要驗證的使用者 Identity Platform ID 權杖。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
要求範例
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]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "email": "user@example.com" }
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
- USER_NOT_FOUND:沒有與此 ID 相對應的使用者記錄。使用者可能已遭到刪除。
確認電子郵件驗證
您可以向 Auth setAccountInfo
端點發出 HTTP POST
要求,確認電子郵件驗證碼。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
oobCode | 字串 | 傳送至使用者電子郵件的動作代碼,用於電子郵件驗證。 |
tenantId | 字串 | 驗證電子郵件的使用者租用戶 ID。僅用於多用戶群架構。 |
屬性名稱 | 類型 | 說明 |
---|---|---|
電子郵件 | 字串 | 帳戶的電子郵件地址。 |
displayName | 字串 | 帳戶的顯示名稱。 |
photoUrl | 字串 | 帳戶的相片網址。 |
passwordHash | 字串 | 密碼雜湊。 |
providerUserInfo | JSON 物件清單 | 包含「providerId」和「federatedId」的所有已連結供應器物件清單。 |
emailVerified | 布林值 | 帳戶的電子郵件是否已驗證。 |
要求範例
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
回應範例
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
常見錯誤代碼
- EXPIRED_OOB_CODE:動作代碼已過期。
- INVALID_OOB_CODE:動作代碼無效。如果代碼格式不正確、已過期或已使用,就可能發生這種情況。
- USER_DISABLED:使用者帳戶已遭管理員停用。
- EMAIL_NOT_FOUND:沒有與此 ID 相對應的使用者記錄。使用者可能已遭到刪除。
刪除帳戶
您可以向 Auth deleteAccount
端點發出 HTTP POST
要求,藉此刪除目前的使用者。
方法:POST
Content-Type: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
屬性名稱 | 類型 | 說明 |
---|---|---|
idToken | 字串 | 要刪除的使用者 Identity Platform ID 權杖。 |
屬性名稱 | 類型 | 說明 |
---|
要求範例
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'
成功的要求會以 200 OK
HTTP 狀態碼表示。
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證已失效。使用者必須重新登入。
- USER_NOT_FOUND:沒有與此 ID 相對應的使用者記錄。使用者可能已遭到刪除。
處理錯誤
以下是 Identity Platform 傳回的常見錯誤示例:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
}
],
"code": 400,
"message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
}
}
從 message
欄位取得錯誤代碼。