ウェブサイト向け Google サードパーティ認証 JavaScript ライブラリ - API リファレンス

このリファレンスでは、Google 3P Authorization JavaScript Library API、 これを使用して、Google から認証コードやアクセス トークンを読み込むことができます。

メソッド: google.accounts.oauth2.initCodeClient

initCodeClient メソッドは、コード クライアントを初期化して返します。 パラメータで構成を設定します。

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

データ型: CodeClientConfig

次の表に、CodeClientConfig データ型のプロパティを示します。

プロパティ
client_id 必須。アプリケーションのクライアント ID。この値は API Console で確認できます。
scope 必須。アプリケーションがユーザーの代わりにアクセスできるリソースを特定するスコープのスペース区切りのリストです。これらの値は、Google がユーザーに表示する同意画面を通知します。
include_granted_scopes 省略可。デフォルトは true です。アプリケーションで増分 追加のスコープへのアクセスをリクエストするためのコンテキストです。次の値を設定した場合: このパラメータの値を false に設定し、承認リクエストを許可すると、 新しいアクセス トークンは、scope がリクエストしたスコープのみに適用されます。 (このCodeClientConfig
redirect_uri リダイレクトの UX では必須です。ユーザーが承認フローを完了した後の API サーバーがユーザーをリダイレクトする場所を指定します。この値は、OAuth 2.0 クライアントで承認されたリダイレクト URI のいずれかと完全に一致する必要があります。この URI は API Console で構成し、リダイレクト URI の検証ルールに準拠している必要があります。このプロパティは、ポップアップの UX では無視されます。
callback ポップアップ UX では必須です。返されたコードのレスポンスを処理する JavaScript 関数。 このプロパティはリダイレクトの UX で無視されます。
state 省略可。リダイレクトの UX におすすめです。認可リクエストと認可サーバーのレスポンスの間で状態を維持するために、アプリケーションが使用する文字列値を指定します。
enable_granular_consent 省略可。デフォルトは true です。false に設定した場合、Google アカウント権限の細分化 2019 年より前に作成された OAuth クライアント ID では無効になります。enable_granular_consentenable_serial_consent の両方を設定した場合は、enable_granular_consent のみ 値が有効になり、enable_serial_consent 値は無視されます。

新しい OAuth クライアント ID では、よりきめ細かい権限が常に有効になるため、影響はありません。
enable_serial_consent 非推奨。代わりに enable_granular_consent を使用してください。この enable_granular_consent と同じ効果があります。既存のアプリケーション enable_serial_consent を使用するインスタンスは引き続き使用できますが、 enable_granular_consent を使用するようにコードを更新することを おすすめします。
login_hint 省略可。どのユーザーがリクエストを承認するべきかがわかっている場合は、このプロパティを使用して Google にログインのヒントを提供できます。成功すると、アカウントの選択はスキップされます。ターゲット ユーザーのメールアドレスまたは ID トークンの sub フィールドの値。 詳細については、OpenID Connect ドキュメントの login_hint フィールドをご覧ください。
hd 省略可。アプリケーションがユーザーが属する Workspace ドメインを認識している場合は、この情報を使用して Google にヒントを提供します。成功すると、ユーザー アカウントは指定されたドメインに限定されるか、事前に選択された状態になります。 詳細については、OpenID Connect ドキュメントの hd フィールドをご覧ください。
ux_mode 省略可。承認フローに使用する UX モード。デフォルトでは、同意フローがポップアップで開きます。有効な値は popupredirect です。
select_account 省略可。デフォルトは 'false' です。ユーザーにアカウントの選択を求めるブール値。
error_callback 省略可。OAuth 以外のエラー( ポップアップ ウィンドウを開けません。OAuth レスポンスが返される前に終了されるか、 返されます。

入力パラメータの「type」フィールドから、詳細な理由がわかります。
  • popup_failed_to_open ポップアップ ウィンドウを開けなかった。
  • popup_closed: ポップアップ ウィンドウが OAuth の実行前に閉じられる レスポンスが返されます。
  • unknown その他のエラーのプレースホルダ。

データ型: CodeClient

このクラスには requestCode というパブリック メソッドが 1 つだけあり、これが OAuth 2.0 コードの UX フロー。

interface CodeClient {
  requestCode(): void;
}

データ型: CodeResponse

CodeResponse JavaScript オブジェクトは、callback メソッドに渡されます。 ポップアップの UX を変更します。リダイレクトの UX では、CodeResponse は URL として渡されます。 あります。

次の表に、CodeResponse データ型のプロパティを示します。

プロパティ
code 成功したトークン レスポンスの認証コード。
scope ユーザーが承認したスコープをスペースで区切ったリスト。
state アプリケーションが認可リクエストとレスポンスの間の状態を維持するために使用する文字列値。
error 単一の ASCII エラーコード。
error_description 追加情報を提供する人が読める ASCII テキスト。発生したエラーをクライアント デベロッパーが理解するうえで役立ちます。
error_uri エラーに関する情報を含む、人が読める形式のウェブページを識別する URI。エラーに関する追加情報をクライアント デベロッパーに提供するために使用されます。

メソッド: google.accounts.oauth2.initTokenClient

initTokenClient メソッドは、トークン クライアントを初期化して返します。これには、 パラメータで構成を設定します。

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

データ型: TokenClientConfig

次の表に、TokenClientConfig データ型のプロパティを示します。

プロパティ
client_id 必須。アプリケーションのクライアント ID。この値は API Console で確認できます。
callback 必須。返されたトークン レスポンスを処理する JavaScript 関数。
scope 必須。アプリケーションがユーザーの代わりにアクセスできるリソースを特定するスコープのスペース区切りのリストです。これらの値は、Google がユーザーに表示する同意画面を通知します。
include_granted_scopes 省略可。デフォルトは true です。アプリケーションで増分 追加のスコープへのアクセスをリクエストするためのコンテキストです。次の値を設定した場合: このパラメータの値を false に設定し、承認リクエストを許可すると、 新しいアクセス トークンは、scope がリクエストしたスコープのみに適用されます。 (このTokenClientConfig
prompt 省略可。デフォルトは 'select_account' です。スペースで区切られた ユーザーに提示するプロンプトのリスト(大文字と小文字を区別します)。有効な値は次のとおりです。 <ph type="x-smartling-placeholder">
    </ph>
  • 空の文字列: アプリが初めてアクセスをリクエストしたときのみ、ユーザーにメッセージが表示されます。他の値と一緒に指定することはできません。
  • 'none' 認証画面や同意画面を表示しません。他の値と一緒に指定することはできません。
  • 'consent': ユーザーに同意を求めます。
  • 'select_account': アカウントを選択するようユーザーに促します。
enable_granular_consent 省略可。デフォルトは true です。false に設定した場合、Google アカウントの権限はより細かく設定されます 2019 年より前に作成された OAuth クライアント ID では無効になります。enable_granular_consentenable_serial_consent の両方を設定した場合は、enable_granular_consent のみ 値が有効になり、enable_serial_consent 値は無視されます。

新しい OAuth クライアント ID では、よりきめ細かい権限が常に有効になるため、影響はありません。
enable_serial_consent 非推奨。代わりに enable_granular_consent を使用してください。この enable_granular_consent と同じ効果があります。既存のアプリケーション enable_serial_consent を使用するインスタンスは引き続き使用できますが、 enable_granular_consent を使用するようにコードを更新することを おすすめします。
login_hint 省略可。どのユーザーがリクエストを承認するべきかがわかっている場合は、このプロパティを使用して Google にログインのヒントを提供できます。成功すると、アカウントの選択はスキップされます。ターゲット ユーザーのメールアドレスまたは ID トークンの sub フィールドの値。 詳細については、OpenID Connect ドキュメントの login_hint フィールドをご覧ください。
hd 省略可。アプリケーションがユーザーが属する Workspace ドメインを認識している場合は、この情報を使用して Google にヒントを提供します。成功すると、ユーザー アカウントは指定されたドメインに限定されるか、事前に選択された状態になります。 詳細については、OpenID Connect ドキュメントの hd フィールドをご覧ください。
state 省略可。非推奨。認可リクエストと認可サーバーのレスポンスの間で状態を維持するために、アプリケーションが使用する文字列値を指定します。
error_callback 省略可。OAuth 以外のエラー( ポップアップ ウィンドウを開けません。OAuth レスポンスが返される前に終了されるか、 返されます。

入力パラメータの「type」フィールドから、詳細な理由がわかります。
  • popup_failed_to_open ポップアップ ウィンドウを開けなかった。
  • popup_closed: ポップアップ ウィンドウが OAuth の実行前に閉じられる レスポンスが返されます。
  • unknown その他のエラーのプレースホルダ。

データ型: TokenClient

このクラスにはrequestAccessTokenというパブリック メソッドが 1 つあり、 OAuth 2.0 トークンの UX フロー。

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
引数
overrideConfig OverridableTokenClientConfig 省略可。このメソッドでオーバーライドされる構成。

データ型: OverridableTokenClientConfig

次の表に、OverridableTokenClientConfig のプロパティを示します。 あります。

プロパティ
scope 省略可。リソースを識別するスコープのスペース区切りリスト アプリケーションがユーザーに代わってアクセスできるリソースです。これらの値は Google がユーザーに表示する同意画面について通知します。
include_granted_scopes 省略可。デフォルトは true です。アプリケーションで増分 追加のスコープへのアクセスをリクエストするためのコンテキストです。次の値を設定した場合: このパラメータの値を false に設定し、承認リクエストを許可すると、 新しいアクセス トークンは、scope がリクエストしたスコープのみに適用されます。 (このOverridableTokenClientConfig
prompt 省略可。ユーザーに表示するプロンプトのリスト。スペースで区切られ、大文字と小文字が区別されます。
enable_granular_consent 省略可。デフォルトは true です。false に設定した場合、Google アカウントの権限はより細かく設定されます 2019 年より前に作成された OAuth クライアント ID では無効になります。enable_granular_consentenable_serial_consent の両方を設定した場合、enable_granular_consent のみ 値が有効になり、enable_serial_consent 値は無視されます。

新しい OAuth クライアント ID では、よりきめ細かい権限が常に有効になるため、影響はありません。
enable_serial_consent 非推奨。代わりに enable_granular_consent を使用してください。この enable_granular_consent と同じ効果があります。既存のアプリケーション enable_serial_consent を使用するインスタンスは引き続き使用できますが、 enable_granular_consent を使用するようにコードを更新することを おすすめします。
login_hint 省略可。どのユーザーがリクエストを承認するべきかがわかっている場合は、このプロパティを使用して Google にログインのヒントを提供できます。成功すると、アカウントの選択はスキップされます。ターゲット ユーザーのメールアドレスまたは ID トークンの sub フィールドの値。 詳細については、OpenID Connect ドキュメントの login_hint フィールドをご覧ください。
state 省略可。非推奨。認可リクエストと認可サーバーのレスポンスの間で状態を維持するために、アプリケーションが使用する文字列値を指定します。

データ型: TokenResponse

TokenResponse JavaScript オブジェクトが、コールバック メソッドの ポップアップの UX を変更します。

次の表に、TokenResponse データ型のプロパティを示します。

プロパティ
access_token 成功したトークン レスポンスのアクセス トークン。
expires_in アクセス トークンの存続期間(秒)。
hd ログイン ユーザーが所属するホスト型ドメイン。
prompt TokenClientConfig または OverridableTokenClientConfig で指定された値の可能なリストから使用されたプロンプト値。
token_type 発行されたトークンのタイプ。
scope ユーザーが承認したスコープをスペースで区切ったリスト。
state アプリケーションが認可リクエストとレスポンスの間の状態を維持するために使用する文字列値。
error 単一の ASCII エラーコード。
error_description 追加情報を提供する人が読める ASCII テキスト。発生したエラーをクライアント デベロッパーが理解するうえで役立ちます。
error_uri エラーに関する情報を含む、人が読める形式のウェブページを識別する URI。エラーに関する追加情報をクライアント デベロッパーに提供するために使用されます。

メソッド: google.accounts.oauth2.hasGrantedAllScopes

指定されたスコープをすべてユーザーが付与したかどうかを確認します。

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
引数
tokenResponse TokenResponse 必須。TokenResponse 渡されます。
firstScope 文字列 必須。確認するスコープ。
restScopes string[] 省略可。確認するその他のスコープ。
戻り値
ブール値 すべてのスコープが付与されている場合は true。

メソッド: google.accounts.oauth2.hasGrantedAnyScope

指定されたスコープをユーザーが付与したかどうかを確認します。

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
引数
tokenResponse TokenResponse 必須。TokenResponse 渡されます。
firstScope 文字列 必須。確認するスコープ。
restScopes string[] 省略可。確認するその他のスコープ。
戻り値
ブール値 いずれかのスコープが付与されている場合は true。

メソッド: google.accounts.oauth2.revoke

revoke メソッドは、ユーザーがアプリに付与したすべてのスコープを取り消します。 権限を取り消すには、有効なアクセス トークンが必要です。

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
引数
accessToken 文字列 必須。有効なアクセス トークン。
callback 関数 省略可。RevocationResponse ハンドラ。

データ型: RevocationResponse

RevocationResponse JavaScript オブジェクトがコールバック メソッドに渡されます。

次の表に、RevocationResponse データ型のプロパティを示します。

プロパティ
successful ブール値。成功した場合は true、失敗した場合は false
error 文字列。成功時には未定義。単一の ASCII エラーコード。これには、標準の OAuth 2.0 エラーコードrevoke メソッドの一般的なエラー: <ph type="x-smartling-placeholder">
    </ph>
  • invalid_token - revoke メソッドが呼び出される前に、トークンがすでに期限切れになっているか、取り消されています。ほとんどの場合、プロジェクトに関連する権限付与を accessToken は取り消されます。
  • invalid_request - トークンを取り消すことはできません。注意すべき点として accessToken は、有効な Google OAuth 2.0 認証情報です。
error_description 文字列。成功時には未定義。人が読める形式の ASCII テキストにより、 error プロパティ。デベロッパーはこれを使用して、 確認できます。error_description 文字列は英語のみです。 error にリストされている一般的なエラーについて、対応する error_description を示します。 <ph type="x-smartling-placeholder">
    </ph>
  • invalid_token - トークンの有効期限が切れているか、取り消されています。
  • invalid_request - トークンを取り消すことはできません。