API使用
您可以透過 REST API 查詢 Firebase Auth 後端。這可用於各種操作,例如建立新使用者、登入現有使用者以及編輯或刪除這些使用者。
在本文檔中, API_KEY
指的是 Web API 金鑰,可以在管理控制台的專案設定頁面上取得。
將自訂令牌交換為 ID 和刷新令牌
您可以透過向 Auth verifyCustomToken
端點發出 HTTP POST
請求,將自訂身份驗證令牌交換為 ID 和刷新令牌。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
代幣 | 細繩 | Firebase Auth 自訂令牌,用於建立 ID 和刷新令牌對。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 從提供的自訂令牌產生的 Firebase 驗證 ID 令牌。 |
刷新令牌 | 細繩 | 從提供的自訂令牌產生的 Firebase 驗證刷新令牌。 |
過期日期在 | 細繩 | 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 狀態碼指示。回應包含與自訂令牌關聯的 Firebase ID 令牌和刷新令牌。
回應樣本
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
常見錯誤代碼
- INVALID_CUSTOM_TOKEN:自訂令牌格式不正確或令牌因某些原因無效(例如過期、簽名無效等)
- CREDENTIAL_MISMATCH:自訂代幣對應於不同的 Firebase 項目。
將刷新令牌交換為 ID 令牌
您可以透過向securetoken.googleapis.com
端點發出 HTTP POST
請求來刷新 Firebase ID 令牌。
方法:郵寄
內容類型: application/x-www-form-urlencoded
端點https://securetoken.googleapis.com/v1/token?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
授予類型 | 細繩 | 刷新令牌的授予類型始終為“refresh_token”。 |
刷新令牌 | 細繩 | Firebase 身份驗證刷新令牌。 |
物業名稱 | 類型 | 描述 |
---|---|---|
過期日期在 | 細繩 | ID 令牌過期的秒數。 |
令牌類型 | 細繩 | 刷新令牌的類型,始終為“Bearer”。 |
刷新令牌 | 細繩 | 請求中提供的 Firebase Auth 刷新令牌或新的刷新令牌。 |
id_token | 細繩 | Firebase 驗證 ID 令牌。 |
使用者身分 | 細繩 | 與提供的 ID 令牌對應的 uid。 |
專案ID | 細繩 | 您的 Firebase 專案 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 狀態碼指示。回應包含新的 Firebase 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
請求來建立新的電子郵件和密碼使用者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 供使用者建立的電子郵件。 |
密碼 | 細繩 | 供使用者建立的密碼。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 新建立使用者的 Firebase 身份驗證 ID 令牌。 |
電子郵件 | 細繩 | 新建立使用者的電子郵件。 |
刷新令牌 | 細繩 | 新建立使用者的 Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | ID 令牌過期的秒數。 |
本地ID | 細繩 | 新建立使用者的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 狀態碼指示。回應包含與新帳戶關聯的 Firebase 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
請求,使用電子郵件和密碼登入使用者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 使用者登入時使用的電子郵件。 |
密碼 | 細繩 | 帳戶的密碼。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 經過身份驗證的使用者的 Firebase 身份驗證 ID 令牌。 |
電子郵件 | 細繩 | 經過身份驗證的使用者的電子郵件。 |
刷新令牌 | 細繩 | 經過身份驗證的使用者的 Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | ID 令牌過期的秒數。 |
本地ID | 細繩 | 經過身份驗證的使用者的 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 狀態碼指示。回應包含與現有電子郵件/密碼帳戶關聯的 Firebase ID 令牌和刷新令牌。
回應範例
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
常見錯誤代碼
- EMAIL_NOT_FOUND:沒有與該識別碼對應的使用者記錄。該用戶可能已被刪除。
- INVALID_PASSWORD:密碼無效或使用者沒有密碼。
- USER_DISABLED:使用者帳戶已被管理員停用。
匿名登入
您可以透過向 Auth signupNewUser
端點發出 HTTP POST
請求來匿名登入使用者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 新建立使用者的 Firebase 身份驗證 ID 令牌。 |
電子郵件 | 細繩 | 由於用戶是匿名的,因此該欄位應該為空。 |
刷新令牌 | 細繩 | 新建立使用者的 Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | ID 令牌過期的秒數。 |
本地ID | 細繩 | 新建立使用者的uid。 |
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與匿名使用者關聯的 Firebase ID 令牌和刷新令牌。
回應範例
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
常見錯誤代碼
- OPERATION_NOT_ALLOWED:此項目停用匿名使用者登入。
使用 OAuth 憑證登入
您可以透過向 Auth verifyAssertion
端點發出 HTTP POST
請求,使用 OAuth 憑證登入使用者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
請求Uri | 細繩 | IDP 將使用者重新導向回的 URI。 |
貼文 | 細繩 | 包含 OAuth 憑證(ID 令牌或存取令牌)和頒發該憑證的提供者 ID。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
傳回Idp憑證 | 布林值 | 是否在出現下列錯誤時強制傳回 OAuth 憑證:FEDERATED_USER_ID_ALREADY_LINKED 和 EMAIL_EXISTS。 |
物業名稱 | 類型 | 描述 |
---|---|---|
聯邦ID | 細繩 | 唯一 ID 識別碼 IdP 帳戶。 |
提供者ID | 細繩 | 連結的提供者 ID(例如,Google 提供者為「google.com」)。 |
本地ID | 細繩 | 經過身份驗證的使用者的 uid。 |
電子郵件已驗證 | 布林值 | 登入郵箱是否經過驗證。 |
電子郵件 | 細繩 | 帳戶的電子郵件。 |
oauthIdToken | 細繩 | OIDC ID 令牌(如果可用)。 |
oauthAccessToken | 細繩 | OAuth 存取令牌(如果可用)。 |
oauthTokenSecret | 細繩 | OAuth 1.0 令牌密鑰(如果可用)。 |
原始用戶資訊 | 細繩 | 字串化 JSON 回應,包含與所提供的 OAuth 憑證對應的所有 IdP 資料。 |
名 | 細繩 | 帳戶的名字。 |
姓 | 細繩 | 帳戶的姓氏。 |
全名 | 細繩 | 帳戶的全名。 |
顯示名稱 | 細繩 | 帳戶的顯示名稱。 |
照片網址 | 細繩 | 帳戶的照片 URL。 |
id令牌 | 細繩 | 經過身份驗證的使用者的 Firebase 身份驗證 ID 令牌。 |
刷新令牌 | 細繩 | 經過身份驗證的使用者的 Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | 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]","returnIdpCredential":true,"returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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
請求來查看與指定電子郵件關聯的所有提供者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
識別符 | 細繩 | 使用者的電子郵件地址 |
繼續Uri | 細繩 | IDP 將使用者重新導向回的 URI。對於此用例,這只是當前 URL。 |
物業名稱 | 類型 | 描述 |
---|---|---|
所有提供者 | 字串列表 | 使用者之前登入過的提供者清單。 |
掛號的 | 布林值 | 該電子郵件是否適用於現有帳戶 |
樣品請求
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
請求來傳送密碼重設電子郵件。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]可選標頭
物業名稱 | 描述 |
---|---|
X-Firebase-區域設置 | 與使用者區域設定對應的語言代碼。傳遞此參數將本地化發送給使用者的密碼重設電子郵件。 |
物業名稱 | 類型 | 描述 |
---|---|---|
請求類型 | 細繩 | 要傳回的 OOB 代碼類型。密碼重置應為「PASSWORD_RESET」。 |
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
樣品請求
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:沒有與該識別碼對應的使用者記錄。該用戶可能已被刪除。
驗證密碼重設代碼
您可以透過向 Auth resetPassword
端點發出 HTTP POST
請求來驗證密碼重設代碼。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
出庫程式碼 | 細繩 | 發送到使用者電子郵件以重設密碼的電子郵件操作代碼。 |
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
請求類型 | 細繩 | 電子郵件操作代碼的類型。應為“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
請求來套用密碼重設變更。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
出庫程式碼 | 細繩 | 發送到使用者電子郵件以重設密碼的電子郵件操作代碼。 |
新密碼 | 細繩 | 用戶的新密碼。 |
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
請求類型 | 細繩 | 電子郵件操作代碼的類型。應為“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
請求來變更使用者的電子郵件。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]可選標頭
物業名稱 | 描述 |
---|---|
X-Firebase-區域設置 | 與使用者區域設定對應的語言代碼。傳遞此參數將本地化發送給使用者的電子郵件變更撤銷。 |
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 使用者的 Firebase 身份驗證 ID 令牌。 |
電子郵件 | 細繩 | 使用者的新電子郵件。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。 |
物業名稱 | 類型 | 描述 |
---|---|---|
本地ID | 細繩 | 當前使用者的uid。 |
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
密碼雜湊值 | 細繩 | 密碼的哈希版本。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
id令牌 | 細繩 | 使用者的新 Firebase 身份驗證 ID 令牌。 |
刷新令牌 | 細繩 | Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | ID 令牌過期的秒數。 |
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與使用者關聯的新 Firebase 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
請求來變更使用者的密碼。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 使用者的 Firebase 身份驗證 ID 令牌。 |
密碼 | 細繩 | 用戶的新密碼。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。 |
物業名稱 | 類型 | 描述 |
---|---|---|
本地ID | 細繩 | 當前使用者的uid。 |
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
密碼雜湊值 | 細繩 | 密碼的哈希版本。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
id令牌 | 細繩 | 使用者的新 Firebase 身份驗證 ID 令牌。 |
刷新令牌 | 細繩 | Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | ID 令牌過期的秒數。 |
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與使用者關聯的新 Firebase 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
請求來更新使用者的個人資料(顯示名稱/照片 URL)。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 使用者的 Firebase 身份驗證 ID 令牌。 |
顯示名稱 | 細繩 | 使用者的新顯示名稱。 |
照片網址 | 細繩 | 用戶的新照片網址。 |
刪除屬性 | 字串列表 | 要刪除的屬性清單“DISPLAY_NAME”或“PHOTO_URL”。這將使這些值無效。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。 |
物業名稱 | 類型 | 描述 |
---|---|---|
本地ID | 細繩 | 當前使用者的uid。 |
電子郵件 | 細繩 | 使用者的電子郵件地址。 |
顯示名稱 | 細繩 | 使用者的新顯示名稱。 |
照片網址 | 細繩 | 用戶的新照片網址。 |
密碼雜湊值 | 細繩 | 密碼的哈希版本。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
id令牌 | 細繩 | 使用者的新 Firebase 身份驗證 ID 令牌。 |
刷新令牌 | 細繩 | Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | 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
請求來取得使用者資料。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 帳戶的 Firebase ID 令牌。 |
物業名稱 | 類型 | 描述 |
---|---|---|
使用者 | JSON 物件列表 | 與給定 Firebase ID 令牌關聯的帳戶。請檢查以下內容以了解更多詳細資訊。 |
users
數組內容)物業名稱 | 類型 | 描述 |
---|---|---|
本地ID | 細繩 | 當前使用者的uid。 |
電子郵件 | 細繩 | 帳戶的電子郵件。 |
電子郵件已驗證 | 布林值 | 帳戶的電子郵件是否已驗證。 |
顯示名稱 | 細繩 | 帳戶的顯示名稱。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
照片網址 | 細繩 | 帳戶的照片 URL。 |
密碼雜湊值 | 細繩 | 密碼的哈希版本。 |
密碼更新時間 | 雙倍的 | 上次變更帳號密碼的時間戳記(以毫秒為單位)。 |
有效期限自 | 細繩 | 時間戳記(以秒為單位),標記邊界,在此之前 Firebase ID 令牌被視為已撤銷。 |
殘障人士 | 布林值 | 帳戶是否已停用。 |
上次登入時間 | 細繩 | 帳戶上次登入的時間戳記(以毫秒為單位)。 |
創建於 | 細繩 | 建立帳戶的時間戳記(以毫秒為單位)。 |
自訂驗證 | 布林值 | 帳號是否經過開發者認證。 |
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_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:沒有與該識別碼對應的使用者記錄。該用戶可能已被刪除。
帶有電子郵件/密碼的鏈接
您可以透過向 Auth setAccountInfo
端點發出 HTTP POST
請求,將電子郵件/密碼連結到目前使用者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 您嘗試將憑證連結到的帳戶的 Firebase ID 令牌。 |
電子郵件 | 細繩 | 連結到帳戶的電子郵件。 |
密碼 | 細繩 | 帳戶的新密碼。 |
返回安全令牌 | 細繩 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
物業名稱 | 類型 | 描述 |
---|---|---|
本地ID | 細繩 | 當前使用者的uid。 |
電子郵件 | 細繩 | 帳戶的電子郵件。 |
顯示名稱 | 細繩 | 帳戶的顯示名稱。 |
照片網址 | 細繩 | 帳戶的照片 URL。 |
密碼雜湊值 | 細繩 | 密碼的哈希版本。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
電子郵件已驗證 | 布林值 | 帳戶的電子郵件是否已驗證。 |
id令牌 | 細繩 | 使用者的新 Firebase 身份驗證 ID 令牌。 |
刷新令牌 | 細繩 | Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | 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 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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 憑證連結到使用者。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 您嘗試將憑證連結到的帳戶的 Firebase ID 令牌。 |
請求Uri | 細繩 | IDP 將使用者重新導向回的 URI。 |
貼文 | 細繩 | 包含 OAuth 憑證(ID 令牌或存取令牌)和頒發該憑證的提供者 ID。 |
返回安全令牌 | 布林值 | 是否回傳 ID 和刷新令牌。應該永遠是真的。 |
傳回Idp憑證 | 布林值 | 是否在出現下列錯誤時強制傳回 OAuth 憑證:FEDERATED_USER_ID_ALREADY_LINKED 和 EMAIL_EXISTS。 |
物業名稱 | 類型 | 描述 |
---|---|---|
聯邦ID | 細繩 | 唯一 ID 識別碼 IdP 帳戶。 |
提供者ID | 細繩 | 連結的提供者 ID(例如,Google 提供者為「google.com」)。 |
本地ID | 細繩 | 經過身份驗證的使用者的 uid。 |
電子郵件已驗證 | 布林值 | 登入郵箱是否經過驗證。 |
電子郵件 | 細繩 | 帳戶的電子郵件。 |
oauthIdToken | 細繩 | OIDC ID 令牌(如果可用)。 |
oauthAccessToken | 細繩 | OAuth 存取令牌(如果可用)。 |
oauthTokenSecret | 細繩 | OAuth 1.0 令牌密鑰(如果可用)。 |
原始用戶資訊 | 細繩 | 字串化 JSON 回應,包含與所提供的 OAuth 憑證對應的所有 IdP 資料。 |
名 | 細繩 | 帳戶的名字。 |
姓 | 細繩 | 帳戶的姓氏。 |
全名 | 細繩 | 帳戶的全名。 |
顯示名稱 | 細繩 | 帳戶的顯示名稱。 |
照片網址 | 細繩 | 帳戶的照片 URL。 |
id令牌 | 細繩 | 經過身份驗證的使用者的 Firebase 身份驗證 ID 令牌。 |
刷新令牌 | 細繩 | 經過身份驗證的使用者的 Firebase 身份驗證刷新令牌。 |
過期日期在 | 細繩 | 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":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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":"[FIREBASE_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
成功的請求由200 OK
HTTP 狀態碼指示。回應包含與經過驗證的使用者關聯的 Firebase 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
請求來取消提供者與目前使用者的連結。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 帳戶的 Firebase ID 令牌。 |
刪除提供者 | 字串列表 | 若要取消連結的提供者 ID 列表,例如:「google.com」、「密碼」等。 |
物業名稱 | 類型 | 描述 |
---|---|---|
本地ID | 細繩 | 當前使用者的uid。 |
電子郵件 | 細繩 | 帳戶的電子郵件。 |
顯示名稱 | 細繩 | 帳戶的顯示名稱。 |
照片網址 | 細繩 | 帳戶的照片 URL。 |
密碼雜湊值 | 細繩 | 密碼的哈希版本。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
電子郵件已驗證 | 布林值 | 帳戶的電子郵件是否已驗證。 |
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[FIREBASE_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
請求來傳送目前使用者的電子郵件驗證。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]可選標頭
物業名稱 | 描述 |
---|---|
X-Firebase-區域設置 | 與使用者區域設定對應的語言代碼。透過此操作將本地化發送給使用者的電子郵件驗證。 |
物業名稱 | 類型 | 描述 |
---|---|---|
請求類型 | 細繩 | 要傳送的確認碼的類型。應始終為“VERIFY_EMAIL”。 |
id令牌 | 細繩 | 要驗證的使用者的 Firebase ID 令牌。 |
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 帳戶的電子郵件。 |
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
成功的請求由200 OK
HTTP 狀態碼指示。
回應範例
{ "email": "user@example.com" }
常見錯誤代碼
- INVALID_ID_TOKEN:使用者的憑證不再有效。用戶必須重新登入。
- USER_NOT_FOUND:沒有與該識別碼對應的使用者記錄。該用戶可能已被刪除。
確認電子郵件驗證
您可以透過向 Auth setAccountInfo
端點發出 HTTP POST
請求來確認電子郵件驗證碼。
方法:郵寄
內容類型: application/json
端點https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]請求正文有效負載
物業名稱 | 類型 | 描述 |
---|---|---|
出庫程式碼 | 細繩 | 操作代碼發送到使用者的電子郵件以進行電子郵件驗證。 |
物業名稱 | 類型 | 描述 |
---|---|---|
電子郵件 | 細繩 | 帳戶的電子郵件。 |
顯示名稱 | 細繩 | 帳戶的顯示名稱。 |
照片網址 | 細繩 | 帳戶的照片 URL。 |
密碼雜湊值 | 細繩 | 密碼哈希。 |
提供者用戶資訊 | JSON 物件列表 | 包含「providerId」和「federatedId」的所有連結提供者物件的清單。 |
電子郵件已驗證 | 布林值 | 帳戶的電子郵件是否已驗證。 |
樣品請求
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:沒有與該識別碼對應的使用者記錄。該用戶可能已被刪除。
刪除帳戶
您可以透過向 Auth deleteAccount
端點發出 HTTP POST
請求來刪除目前使用者。
方法:郵寄
內容類型: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]Request Body Payload
物業名稱 | 類型 | 描述 |
---|---|---|
id令牌 | 細繩 | 要刪除的使用者的 Firebase ID 令牌。 |
物業名稱 | 類型 | 描述 |
---|
樣品請求
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
成功的請求由200 OK
HTTP 狀態碼指示。
常見錯誤代碼
- Invalid_id_token:使用者的憑證不再有效。用戶必須再次登入。
- USER_NOT_FOUND:沒有與此識別碼對應的使用者記錄。用戶可能已刪除。
火基身份驗證模擬器
Firebase Local Emulator Suite包括一個身份驗證模擬器,可用於身份驗證流的局部原型製作和測試。模擬器揭示以下剩餘端點。
清除用戶帳戶
刪除指定項目中的所有帳戶,無論州如何。
方法:刪除
端點請注意, 9099
是身份驗證模擬器的預設連接埠。檢查終端輸出是否使用的實際連接埠。
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
取得模擬器配置
取得指定項目的模擬器特定配置。
方法:獲取
端點請注意, 9099
是身份驗證模擬器的預設連接埠。檢查終端輸出是否使用的實際連接埠。
http://localhost:9099/emulator/v1/projects/{project-id}/config響應有效載荷
屬性名稱 | 類型 | 描述 |
---|---|---|
登入 | 目的 | 符號配置對象,其中包含一個鍵, allowDuplicateEmails (boolean)。 |
補丁模擬器配置
更新指定項目的模擬器特定配置。
方法:補丁
端點請注意, 9099
是身份驗證模擬器的預設連接埠。檢查終端輸出是否使用的實際連接埠。
內容類型:應用程式/JSON
http://localhost:9099/emulator/v1/projects/{project-id}/config請求身體有效載荷
屬性名稱 | 類型 | 描述 |
---|---|---|
登入 | 目的 | 所需的符號配置對象,帶有單鍵, allowDuplicateEmails (boolean)。 |
屬性名稱 | 類型 | 描述 |
---|---|---|
登入 | 目的 | 帶有單鍵,允許allowDuplicateEmails (布林值)的重新簽名配置物件。 |
檢索帶外身份驗證代碼
如果您正在測試的身份驗證流通常會產生帶外代碼(例如,電子郵件驗證代碼,密碼重設代碼),則模擬器內部儲存此類代碼,直到使用它們為止。
方法:獲取
端點請注意, 9099
是身份驗證模擬器的預設連接埠。檢查終端輸出是否使用的實際連接埠。
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes響應有效載荷
屬性名稱 | 類型 | 描述 |
---|---|---|
OOBCODES | 大批 | 包含所有待處理確認程式碼的詳細資訊的一系列物件。每個物件都包含email (字串), oobCode (string), oobLink (string)和requestType (string) |
檢索SMS驗證程式碼
如果您正在測試電話/SMS身份驗證流,則模擬器在內部進行此類SMS程式碼,直到使用它們為止。
方法:獲取
端點請注意, 9099
是身份驗證模擬器的預設連接埠。檢查終端輸出是否使用的實際連接埠。
http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes響應有效載荷
屬性名稱 | 類型 | 描述 |
---|---|---|
驗證碼 | 大批 | 包含所有待處理驗證程式碼的詳細資訊的一系列物件。每個物件都包含phoneNumber (String)和sessionCode (String)。 |
錯誤回應
錯誤回應格式
每當上述任何API中的後端伺服器傳回錯誤時,回應將具有以下格式。
樣本回應
{ "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } ], "code": 400, "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } }
錯誤代碼是從訊息字段獲得的。上述所有錯誤代碼都涉及訊息欄位內容。