REST API の使用
このドキュメントでは、Identity Platform REST API を使用したユーザー ログインやトークンの操作など、一般的なユーザー オペレーションの実施方法について説明します。
始める前に
REST API を使用するには、Identity Platform API キーが必要になります。キーを取得するには、次のようにします。
Google Cloud コンソールで [ID プロバイダ] ページに移動します。
[ID プロバイダ] ページに移動[アプリケーション設定の詳細] をクリックします。
apiKey
フィールドをコピーします。
すべての API 呼び出しで HTTPS を使用する必要があるので注意してください。
API の呼び出し
カスタム トークンを ID および更新トークンと交換
HTTP POST
リクエストを signInWithCustomToken
エンドポイントに発行することで、カスタム Auth トークンを、ID および更新トークンと交換できます。
メソッド: POST
Content-Type: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
プロパティ名 | タイプ | 説明 |
---|---|---|
token | 文字列 | ID と更新トークンの組の作成元の Identity Platform カスタム トークン。 |
returnSecureToken | ブール値 | ID と更新トークンを返すかどうか。常に true を指定します。 |
tenantId | 文字列 | ユーザーがログインしているテナント ID。マルチテナンシーでのみ使用されます。 トークンの tenant_id と一致している必要があります。 |
プロパティ | 名前 | 説明 |
---|---|---|
alg | アルゴリズム | RS256 にします。 |
iss | 発行元 | プロジェクトのサービス アカウントのメールアドレス。 |
sub | 件名 | プロジェクトのサービス アカウントのメールアドレス。 |
AUD | 対象 | https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit |
iat | 発行時 | 現在の時間(UNIX エポック時刻からの秒数)。 |
exp | 有効期限 | トークンの有効期限が切れる時間(UNIX エポック時刻からの秒数)。iat から最大 3,600 秒後の時間を設定できます。注: これは、カスタム トークン自体の有効期限が切れる時間のみを制御できます。ただし、 signInWithCustomToken() を使用してユーザーをログインさせると、セッションが無効になるかユーザーがログアウトするまで、デバイスにログインしたままになります。 |
uid | ユーザー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 トークンと交換
HTTP POST
リクエストを securetoken.googleapis.com
エンドポイントに発行することで、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 トークンに対応する uid。 |
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 キーのプロジェクト番号と一致しません。
メールアドレスとパスワードの登録
HTTP POST
リクエストを Auth signupNewUser
エンドポイントに発行することで、新しいメールとパスワードのユーザーを作成できます。
メソッド: 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: 異常なアクティビティが行われたため、このデバイスからのリクエストはすべてブロックされています。しばらくしてからもう一度実行してください。
メールアドレスとパスワードによるログイン
HTTP POST
リクエストを Auth verifyPassword
エンドポイントに発行することで、メールアドレスとパスワードによるユーザーのログインが可能になります。
メソッド: 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: ユーザー アカウントが管理者によって無効にされています。
匿名でのログイン
HTTP POST
リクエストを Auth signupNewUser
エンドポイントに発行することで、ユーザーを匿名でログインさせることができます。
メソッド: 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 認証情報によるログイン
HTTP POST
リクエストを Auth verifyAssertion
エンドポイントに発行することで、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 | ブール値 | FEDERATED_USER_ID_ALREADY_LINKED と EMAIL_EXISTS エラーで OAuth 認証情報を強制的に返すかどうか。 |
tenantId | 文字列 | ユーザーがログインしているテナント ID。マルチテナンシーでのみ使用されます。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
federatedId | 文字列 | 一意の ID により IdP アカウントが識別されます。 |
providerId | 文字列 | リンクされたプロバイダ ID(Google プロバイダの「google.com」など)。 |
localId | 文字列 | 認証されたユーザーの uid。 |
emailVerified | ブール値 | ログイン メールアドレスが確認済みかどうか。 |
メール | 文字列 | アカウントのメールアドレス。 |
oauthIdToken | 文字列 | OIDC ID トークン(使用可能な場合)。 |
oauthAccessToken | 文字列 | OAuth アクセス トークン(使用可能な場合)。 |
oauthTokenSecret | 文字列 | OAuth 1.0 トークン シークレット(使用可能な場合)。 |
rawUserInfo | 文字列 | 指定された OAuth 認証情報に対応するすべての IdP データを含む、文字列化された JSON レスポンス。 |
firstName | 文字列 | アカウントの名。 |
lastName | 文字列 | アカウントの姓。 |
fullName | 文字列 | アカウントの氏名。 |
displayName | 文字列 | アカウントの表示名。 |
photoUrl | 文字列 | アカウントの写真の URL。 |
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: 指定された認証情報の形式が正しくないか、期限が切れています。
メール プロバイダの取得
HTTP POST
リクエストを Auth createAuthUri
エンドポイントに発行することで、指定されたメールに関連付けられているすべてのプロバイダを検索できます。
メソッド: POST
Content-Type: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
プロパティ名 | タイプ | 説明 |
---|---|---|
identifier | 文字列 | ユーザーのメールアドレス |
continueUri | 文字列 | IDP がユーザーをリダイレクトする URI。このユースケースでは、単に現在の URL になります。 |
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: メールアドレスの形式が正しくありません。
パスワードの再設定メールの送信
HTTP POST
リクエストを Auth getOobConfirmationCode
エンドポイントに発行することで、パスワードの再設定メールを送信できます。
メソッド: 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 に対応するユーザー レコードはありません。このユーザーは削除された可能性があります。
パスワードの再設定コードの確認
HTTP POST
リクエストを Auth resetPassword
エンドポイントに発行することで、パスワードの再設定コードを確認できます。
メソッド: 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: アクション コードが無効です。これは、コードが不正な形式、有効期限切れ、またはすでに使用されている場合に発生します
パスワードの再設定の確認
HTTP POST
リクエストを Auth resetPassword
エンドポイントに発行することで、パスワードの再設定の変更を行えます。
メソッド: 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: ユーザー アカウントが管理者によって無効にされています。
メールアドレスの変更
HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行することで、ユーザーのメールアドレスを変更できます。
メソッド: 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: ユーザーの認証情報は無効になりました。ユーザーは再ログインする必要があります。
パスワードを変更
HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行することで、ユーザーのパスワードを変更できます。
メソッド: 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 文字以上にする必要があります。
プロフィールの更新
HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行することで、ユーザーのプロフィール(表示名 / 写真の URL)を更新できます。
メソッド: POST
Content-Type: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
プロパティ名 | タイプ | 説明 |
---|---|---|
idToken | 文字列 | ユーザーの Identity Platform ID トークン。 |
displayName | 文字列 | ユーザーの新しい表示名。 |
photoUrl | 文字列 | ユーザーの新しい写真 URL。 |
deleteAttribute | 文字列のリスト | 削除する属性のリスト、「DISPLAY_NAME」または「PHOTO_URL」。これらの値は null になります。 |
returnSecureToken | ブール値 | ID と更新トークンを返すかどうか。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
localId | 文字列 | 現在のユーザーの uid。 |
メール | 文字列 | ユーザーのメールアドレス。 |
displayName | 文字列 | ユーザーの新しい表示名。 |
photoUrl | 文字列 | ユーザーの新しい写真 URL。 |
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: ユーザーの認証情報は無効になりました。ユーザーは再ログインする必要があります。
ユーザーデータの取得
HTTP POST
リクエストを Auth getAccountInfo
エンドポイントに発行することで、ユーザーのデータを取得できます。
メソッド: 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 | 文字列 | アカウントの写真の URL。 |
passwordHash | 文字列 | パスワードのハッシュ バージョン。 |
passwordUpdatedAt | double | アカウントのパスワードが最後に変更されたタイムスタンプ(ミリ秒単位)。 |
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 に対応するユーザー レコードはありません。このユーザーは削除された可能性があります。
メール / パスワードによるリンク
HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行することで、メールとパスワードを現在のユーザーにリンクできます。
メソッド: 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 | 文字列 | アカウントの写真の URL。 |
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 認証情報によるリンク
HTTP POST
リクエストを Auth verifyAssertion
エンドポイントに発行することで、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 | ブール値 | FEDERATED_USER_ID_ALREADY_LINKED と EMAIL_EXISTS エラーで OAuth 認証情報を強制的に返すかどうか。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
federatedId | 文字列 | 一意の ID により IdP アカウントが識別されます。 |
providerId | 文字列 | リンクされたプロバイダ ID(Google プロバイダの「google.com」など)。 |
localId | 文字列 | 認証されたユーザーの uid。 |
emailVerified | ブール値 | ログイン メールアドレスが確認済みかどうか。 |
メール | 文字列 | アカウントのメールアドレス。 |
oauthIdToken | 文字列 | OIDC ID トークン(使用可能な場合)。 |
oauthAccessToken | 文字列 | OAuth アクセス トークン(使用可能な場合)。 |
oauthTokenSecret | 文字列 | OAuth 1.0 トークン シークレット(使用可能な場合)。 |
rawUserInfo | 文字列 | 指定された OAuth 認証情報に対応するすべての IdP データを含む、文字列化された JSON レスポンス。 |
firstName | 文字列 | アカウントの名。 |
lastName | 文字列 | アカウントの姓。 |
fullName | 文字列 | アカウントの氏名。 |
displayName | 文字列 | アカウントの表示名。 |
photoUrl | 文字列 | アカウントの写真の URL。 |
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: この認証情報は、すでに別のユーザー アカウントに関連付けられています。
プロバイダのリンク解除
HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行することで、現在のユーザーからプロバイダのリンクを解除できます。
メソッド: 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 | 文字列 | アカウントの写真の URL。 |
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: ユーザーの認証情報が無効になりました。ユーザーは再ログインする必要があります。
メール確認の送信
HTTP POST
リクエストを Auth getOobConfirmationCode
エンドポイントに発行することで、現在のユーザーのメール確認を送信できます。
メソッド: 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 に対応するユーザー レコードはありません。このユーザーは削除された可能性があります。
メール確認の確認
HTTP POST
リクエストを Auth setAccountInfo
エンドポイントに発行することで、メール確認コードを確認できます。
メソッド: POST
Content-Type: application/json
エンドポイントhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
プロパティ名 | タイプ | 説明 |
---|---|---|
oobCode | 文字列 | ユーザーのメールアドレスを確認するために送信されるアクション コード。 |
tenantId | 文字列 | メールを確認するユーザーのテナント ID。マルチテナンシーでのみ使用されます。 |
プロパティ名 | タイプ | 説明 |
---|---|---|
メール | 文字列 | アカウントのメールアドレス。 |
displayName | 文字列 | アカウントの表示名。 |
photoUrl | 文字列 | アカウントの写真の URL。 |
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 に対応するユーザー レコードはありません。このユーザーは削除された可能性があります。
アカウントを削除
HTTP POST
リクエストを Auth deleteAccount
エンドポイントに発行することで、現在のユーザーを削除できます。
メソッド: 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
フィールドから取得します。