REST API の使用

このドキュメントでは、Identity Platform REST API を使用したユーザー ログインやトークンの操作など、一般的なユーザー オペレーションの実施方法について説明します。

始める前に

REST API を使用するには、Identity Platform API キーが必要になります。キーを取得するには、次のようにします。

  1. Google Cloud コンソールで [ID プロバイダ] ページに移動します。
    [ID プロバイダ] ページに移動

  2. [アプリケーション設定の詳細] をクリックします。

  3. 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 文字以上にする必要があります。

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 フィールドから取得します。