APIの使用法
REST API を通じて Firebase Auth バックエンドにクエリを実行できます。これは、新しいユーザーの作成、既存のユーザーのサインイン、これらのユーザーの編集または削除など、さまざまな操作に使用できます。
このドキュメント全体を通じて、 API_KEY
Web API キーを指します。Web API キーは、管理コンソールのプロジェクト設定ページで取得できます。
カスタムトークンをIDとリフレッシュトークンに交換します
Auth verifyCustomToken
エンドポイントに HTTP POST
リクエストを発行することで、カスタム認証トークンを ID およびリフレッシュ トークンと交換できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]リクエスト本文のペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
トークン | 弦 | ID とリフレッシュ トークンのペアの作成元となる Firebase Auth カスタム トークン。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | 提供されたカスタム トークンから生成された Firebase Auth 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トークンに交換する
Firebase ID トークンを更新するには、 securetoken.googleapis.com
エンドポイントに HTTP POST
リクエストを発行します。
メソッド: POST
コンテンツタイプ: application/x-www-form-urlencoded
エンドポイントhttps://securetoken.googleapis.com/v1/token?key=[API_KEY]リクエスト本文のペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
許可の種類 | 弦 | リフレッシュ トークンの付与タイプは常に「refresh_token」です。 |
リフレッシュトークン | 弦 | Firebase 認証リフレッシュ トークン。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
期限切れ_in | 弦 | ID トークンの有効期限が切れる秒数。 |
トークンの種類 | 弦 | リフレッシュ トークンのタイプ。常に「Bearer」です。 |
リフレッシュトークン | 弦 | リクエストで提供された Firebase 認証リフレッシュ トークン、または新しいリフレッシュ トークン。 |
id_トークン | 弦 | Firebase 認証 ID トークン。 |
ユーザー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 キーのプロジェクト番号と一致しません。
メールアドレス/パスワードでサインアップ
signupNewUser
エンドポイントに HTTP POST
リクエストを発行することで、新しい電子メールとパスワードのユーザーを作成できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]リクエスト本文のペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | ユーザーが作成する電子メール。 |
パスワード | 弦 | ユーザーが作成するパスワード。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | 新しく作成されたユーザーの Firebase Auth ID トークン。 |
Eメール | 弦 | 新しく作成されたユーザーの電子メール。 |
リフレッシュトークン | 弦 | 新しく作成されたユーザーの 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
リクエストを発行することで、電子メールとパスワードを使用してユーザーをサインインできます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | ユーザーがサインインに使用している電子メール。 |
パスワード | 弦 | アカウントのパスワード。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | 認証されたユーザーの Firebase Auth ID トークン。 |
Eメール | 弦 | 認証されたユーザーの電子メール。 |
リフレッシュトークン | 弦 | 認証されたユーザーの 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: ユーザー アカウントは管理者によって無効にされています。
匿名でサインインする
signupNewUser
エンドポイントに HTTP POST
リクエストを発行することで、ユーザーを匿名でサインインできます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | 新しく作成されたユーザーの Firebase Auth ID トークン。 |
Eメール | 弦 | ユーザーは匿名であるため、これは空にする必要があります。 |
リフレッシュトークン | 弦 | 新しく作成されたユーザーの 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 資格情報を使用してユーザーをサインインできます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
requestUri | 弦 | IDP がユーザーをリダイレクトして戻す URI。 |
投稿本文 | 弦 | OAuth 資格情報 (ID トークンまたはアクセス トークン) と資格情報を発行するプロバイダー ID が含まれます。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
returnIdpCredential | ブール値 | 次のエラーに対して OAuth 認証情報の返却を強制するかどうか: FEDERATED_USER_ID_ALREADY_LINKED および EMAIL_EXISTS。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
フェデレーション ID | 弦 | 一意の ID は IdP アカウントを識別します。 |
プロバイダーID | 弦 | リンクされたプロバイダー ID (例: Google プロバイダーの場合は「google.com」)。 |
ローカルID | 弦 | 認証されたユーザーの uid。 |
メール認証済み | ブール値 | サインイン電子メールが検証されたかどうか。 |
Eメール | 弦 | アカウントのメールアドレス。 |
oauthIdトークン | 弦 | 利用可能な場合は、OIDC ID トークン。 |
oauthアクセストークン | 弦 | OAuth アクセス トークン (利用可能な場合)。 |
oauthトークンシークレット | 弦 | OAuth 1.0 トークン シークレット (利用可能な場合)。 |
rawユーザー情報 | 弦 | 提供された OAuth 認証情報に対応するすべての IdP データを含む文字列化された JSON 応答。 |
ファーストネーム | 弦 | アカウントの名。 |
苗字 | 弦 | アカウントの姓。 |
フルネーム | 弦 | アカウントのフルネーム。 |
表示名 | 弦 | アカウントの表示名。 |
写真URL | 弦 | アカウントの写真の URL。 |
idトークン | 弦 | 認証されたユーザーの Firebase Auth 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
リクエストを発行することで、指定した電子メールに関連付けられているすべてのプロバイダーを確認できます。
メソッド: 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
リクエストを発行することで、パスワード リセット電子メールを送信できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]オプションのヘッダー
プロパティ名 | 説明 |
---|---|
X-Firebase-ロケール | ユーザーのロケールに対応する言語コード。これを渡すと、ユーザーに送信されるパスワード リセット電子メールがローカライズされます。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
リクエストの種類 | 弦 | 返される OOB コードの種類。パスワードをリセットするには「PASSWORD_RESET」にする必要があります。 |
Eメール | 弦 | ユーザーの電子メール アドレス。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | ユーザーの電子メール アドレス。 |
サンプルリクエスト
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: この識別子に対応するユーザー レコードはありません。ユーザーが削除された可能性があります。
パスワードリセットコードを確認してください
パスワード リセット コードを確認するには、HTTP POST
リクエストを Auth resetPassword
エンドポイントに発行します。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]リクエスト本文のペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
oobコード | 弦 | パスワードをリセットするためにユーザーの電子メールに送信される電子メール アクション コード。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | ユーザーの電子メール アドレス。 |
リクエストの種類 | 弦 | 電子メールアクションコードのタイプ。 「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
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]リクエスト本文のペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
oobコード | 弦 | パスワードをリセットするためにユーザーの電子メールに送信される電子メール アクション コード。 |
新しいパスワード | 弦 | ユーザーの新しいパスワード。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | ユーザーの電子メール アドレス。 |
リクエストの種類 | 弦 | 電子メールアクションコードのタイプ。 「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: ユーザー アカウントは管理者によって無効にされています。
メールアドレスを変更
ユーザーの電子メールを変更するには、HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行します。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]のオプションのヘッダー
プロパティ名 | 説明 |
---|---|
X-Firebase-ロケール | ユーザーのロケールに対応する言語コード。これを渡すと、ユーザーに送信される電子メール変更取り消しがローカライズされます。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | ユーザーの Firebase Auth ID トークン。 |
Eメール | 弦 | ユーザーの新しい電子メール。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
ローカルID | 弦 | 現在のユーザーの uid。 |
Eメール | 弦 | ユーザーの電子メール アドレス。 |
パスワードハッシュ | 弦 | パスワードのハッシュバージョン。 |
プロバイダーユーザー情報 | JSONオブジェクトのリスト | 「providerId」と「federatedId」を含むすべてのリンクされたプロバイダー オブジェクトのリスト。 |
idトークン | 弦 | ユーザーの新しい Firebase Auth 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: ユーザーの資格情報はもう有効ではありません。ユーザーは再度サインインする必要があります。
パスワードを変更する
ユーザーのパスワードを変更するには、HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行します。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]リクエスト本文のペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | ユーザーの Firebase Auth ID トークン。 |
パスワード | 弦 | ユーザーの新しいパスワード。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
ローカルID | 弦 | 現在のユーザーの uid。 |
Eメール | 弦 | ユーザーの電子メール アドレス。 |
パスワードハッシュ | 弦 | パスワードのハッシュバージョン。 |
プロバイダーユーザー情報 | JSONオブジェクトのリスト | 「providerId」と「federatedId」を含むすべてのリンクされたプロバイダー オブジェクトのリスト。 |
idトークン | 弦 | ユーザーの新しい Firebase Auth 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) を更新できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | ユーザーの Firebase Auth ID トークン。 |
表示名 | 弦 | ユーザーの新しい表示名。 |
写真URL | 弦 | ユーザーの新しい写真の URL。 |
属性の削除 | 文字列のリスト | 削除する属性のリスト、「DISPLAY_NAME」または「PHOTO_URL」。これにより、これらの値は無効になります。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
ローカルID | 弦 | 現在のユーザーの uid。 |
Eメール | 弦 | ユーザーの電子メール アドレス。 |
表示名 | 弦 | ユーザーの新しい表示名。 |
写真URL | 弦 | ユーザーの新しい写真の URL。 |
パスワードハッシュ | 弦 | パスワードのハッシュバージョン。 |
プロバイダーユーザー情報 | JSONオブジェクトのリスト | 「providerId」と「federatedId」を含むすべてのリンクされたプロバイダー オブジェクトのリスト。 |
idトークン | 弦 | ユーザーの新しい Firebase Auth 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
リクエストを発行することで、ユーザーのデータを取得できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | アカウントの Firebase ID トークン。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
ユーザー | JSONオブジェクトのリスト | 指定された Firebase ID トークンに関連付けられたアカウント。詳細については以下をご確認ください。 |
users
配列の内容)プロパティ名 | タイプ | 説明 |
---|---|---|
ローカルID | 弦 | 現在のユーザーの uid。 |
Eメール | 弦 | アカウントのメールアドレス。 |
メール認証済み | ブール値 | アカウントのメールアドレスが認証されているかどうか。 |
表示名 | 弦 | アカウントの表示名。 |
プロバイダーユーザー情報 | JSONオブジェクトのリスト | 「providerId」と「federatedId」を含むすべてのリンクされたプロバイダー オブジェクトのリスト。 |
写真URL | 弦 | アカウントの写真の 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
リクエストを発行することで、電子メール/パスワードを現在のユーザーにリンクできます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | 認証情報をリンクしようとしているアカウントの Firebase ID トークン。 |
Eメール | 弦 | アカウントにリンクするための電子メール。 |
パスワード | 弦 | アカウントの新しいパスワード。 |
セキュアトークンを返す | 弦 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
ローカルID | 弦 | 現在のユーザーの uid。 |
Eメール | 弦 | アカウントのメールアドレス。 |
表示名 | 弦 | アカウントの表示名。 |
写真URL | 弦 | アカウントの写真の URL。 |
パスワードハッシュ | 弦 | パスワードのハッシュバージョン。 |
プロバイダーユーザー情報 | JSONオブジェクトのリスト | 「providerId」と「federatedId」を含むすべてのリンクされたプロバイダー オブジェクトのリスト。 |
メール認証済み | ブール値 | アカウントのメールアドレスが認証されているかどうか。 |
idトークン | 弦 | ユーザーの新しい Firebase Auth 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 資格情報をユーザーにリンクできます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | 認証情報をリンクしようとしているアカウントの Firebase ID トークン。 |
requestUri | 弦 | IDP がユーザーをリダイレクトして戻す URI。 |
投稿本文 | 弦 | OAuth 資格情報 (ID トークンまたはアクセス トークン) と資格情報を発行するプロバイダー ID が含まれます。 |
セキュアトークンを返す | ブール値 | IDとリフレッシュトークンを返すかどうか。常に true である必要があります。 |
returnIdpCredential | ブール値 | 次のエラーに対して OAuth 認証情報の返却を強制するかどうか: FEDERATED_USER_ID_ALREADY_LINKED および EMAIL_EXISTS。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
フェデレーション ID | 弦 | 一意の ID は IdP アカウントを識別します。 |
プロバイダーID | 弦 | リンクされたプロバイダー ID (例: Google プロバイダーの場合は「google.com」)。 |
ローカルID | 弦 | 認証されたユーザーの uid。 |
メール認証済み | ブール値 | サインイン電子メールが検証されたかどうか。 |
Eメール | 弦 | アカウントのメールアドレス。 |
oauthIdトークン | 弦 | 利用可能な場合は、OIDC ID トークン。 |
oauthアクセストークン | 弦 | OAuth アクセス トークン (利用可能な場合)。 |
oauthトークンシークレット | 弦 | OAuth 1.0 トークン シークレット (利用可能な場合)。 |
rawユーザー情報 | 弦 | 提供された OAuth 認証情報に対応するすべての IdP データを含む文字列化された JSON 応答。 |
ファーストネーム | 弦 | アカウントの名。 |
苗字 | 弦 | アカウントの姓。 |
フルネーム | 弦 | アカウントのフルネーム。 |
表示名 | 弦 | アカウントの表示名。 |
写真URL | 弦 | アカウントの写真の URL。 |
idトークン | 弦 | 認証されたユーザーの Firebase Auth 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
リクエストを発行することで、現在のユーザーからプロバイダーのリンクを解除できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
idトークン | 弦 | アカウントの Firebase ID トークン。 |
プロバイダーの削除 | 文字列のリスト | リンクを解除するプロバイダ ID のリスト (例: 「google.com」、「パスワード」など)。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
ローカルID | 弦 | 現在のユーザーの uid。 |
Eメール | 弦 | アカウントのメールアドレス。 |
表示名 | 弦 | アカウントの表示名。 |
写真URL | 弦 | アカウントの写真の 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
リクエストを発行することで、現在のユーザーの電子メール検証を送信できます。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]のオプションのヘッダー
プロパティ名 | 説明 |
---|---|
X-Firebase-ロケール | ユーザーのロケールに対応する言語コード。これを渡すと、ユーザーに送信される電子メール検証がローカライズされます。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
リクエストの種類 | 弦 | 送信する確認コードのタイプ。常に「VERIFY_EMAIL」である必要があります。 |
idトークン | 弦 | 検証するユーザーの Firebase ID トークン。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | アカウントのメールアドレス。 |
サンプルリクエスト
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: この識別子に対応するユーザー レコードはありません。ユーザーが削除された可能性があります。
メール認証の確認
電子メール検証コードを確認するには、HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行します。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
oobコード | 弦 | 電子メール検証のためにユーザーの電子メールに送信されるアクション コード。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
Eメール | 弦 | アカウントのメールアドレス。 |
表示名 | 弦 | アカウントの表示名。 |
写真URL | 弦 | アカウントの写真の 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
リクエストを発行します。
メソッド: POST
コンテンツタイプ: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]リクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
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認証エミュレータ
Firebase Local Emulator Suite には、ローカル プロトタイピングと認証フローのテストに使用できるAuthentication エミュレータが含まれています。エミュレーターは次の REST エンドポイントを公開します。
ユーザーアカウントをクリアする
状態に関係なく、指定したプロジェクト内のすべてのアカウントを削除します。
メソッド: DELETE
終点9099
認証エミュレータのデフォルトのポートであることに注意してください。実際に使用されているポートの端末出力を確認してください。
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
エミュレータ構成を取得する
指定されたプロジェクトのエミュレータ固有の構成を取得します。
メソッド: GET
終点9099
認証エミュレータのデフォルトのポートであることに注意してください。実際に使用されているポートの端末出力を確認してください。
http://localhost:9099/emulator/v1/projects/{project-id}/config応答ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
サインイン | 物体 | 単一のキー、 allowDuplicateEmails (ブール値) を含むsignIn 構成オブジェクト。 |
パッチエミュレータ構成
指定されたプロジェクトのエミュレータ固有の構成を更新します。
メソッド:パッチ
終点9099
認証エミュレータのデフォルトのポートであることに注意してください。実際に使用されているポートの端末出力を確認してください。
コンテンツタイプ: application/json
http://localhost:9099/emulator/v1/projects/{project-id}/configリクエスト本文ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
サインイン | 物体 | 単一のキー、 allowDuplicateEmails (ブール値) を持つ必要なサインイン構成オブジェクト。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
サインイン | 物体 | シングルキーを備えたリクエスト後のSignin構成オブジェクト、 allowDuplicateEmails (boolean)。 |
帯域外認証コードを取得します
テストしている認証フローが通常、バンド外のコード(電子メール検証コード、パスワードリセットコードなど)を生成する場合、エミュレータはそのようなコードを使用するまで内部に保存します。
方法:取得します
終点9099
認証エミュレータのデフォルトポートであることに注意してください。使用されている実際のポートの端子出力を確認してください。
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes応答ペイロード
プロパティ名 | タイプ | 説明 |
---|---|---|
obcodes | 配列 | 保留中のすべての確認コードの詳細を含むオブジェクトの配列。各オブジェクトには、 email (String)、 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" } }
エラーコードはメッセージフィールドから取得されます。上記のすべてのエラーコードは、メッセージフィールドコンテンツを参照しています。