使用 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 欄位取得錯誤代碼。