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

このリファレンスでは、Google から認証コードまたはアクセス トークンを読み込むために使用できる Google 3P Authorization JavaScript Library API について説明します。

メソッド: 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 に設定し、認証リクエストが許可されている場合、新しいアクセス トークンは、この CodeClientConfigscope がリクエストしたスコープのみを対象とします。
redirect_uri リダイレクトの UX に必須です。ユーザーが認可フローを完了した後、API サーバーがユーザーをリダイレクトする場所を指定します。この値は、OAuth 2.0 クライアントで承認済みのリダイレクト URI のいずれかと完全に一致している必要があります。この URI は API Console で設定しており、Google のリダイレクト URI 検証ルールに準拠している必要があります。このプロパティは、ポップアップ UX では無視されます。
callback ポップアップの UX に必要です。返されたコードのレスポンスを処理する JavaScript 関数。このプロパティは、リダイレクト UX で無視されます。
state (省略可)リダイレクトの UX に推奨されます。アプリケーションが認可リクエストと認可サーバーのレスポンスの間で状態を維持するために使用する文字列値を指定します。
enable_granular_consent 省略可。デフォルトは true です。false に設定すると、2019 年より前に作成された OAuth クライアント ID に対して、より詳細な Google アカウントの権限が無効になります。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 以外のエラーを処理する JavaScript 関数。

入力パラメータの type フィールドには、詳細な理由が示されています。
  • popup_failed_to_open: ポップアップ ウィンドウを開けません。
  • popup_closed ポップアップ ウィンドウは、OAuth レスポンスが返される前に閉じられます。
  • unknown 他のエラーのプレースホルダ。

データ型: CodeClient

このクラスにはパブリック メソッド requestCode が 1 つだけあり、これが OAuth 2.0 コード UX フローを開始します。

interface CodeClient {
  requestCode(): void;
}

データ型: CodeResponse

CodeResponse JavaScript オブジェクトが、ポップアップ UX で callback メソッドに渡されます。リダイレクト 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 に設定し、認証リクエストが許可されている場合、新しいアクセス トークンは、この TokenClientConfigscope がリクエストしたスコープのみを対象とします。
prompt 省略可。デフォルトは 'select_account' です。ユーザーに表示するプロンプトをスペースで区切ったリスト(大文字と小文字を区別)。有効な値は次のとおりです。
  • 空の文字列: アプリが初めてアクセスをリクエストしたときにのみ、ユーザーにメッセージが表示されます。他の値では指定できません。
  • 「none」 認証画面や同意画面を表示しません。他の値と一緒に指定することはできません。
  • 'consent': ユーザーに同意を求めます。
  • 'select_account' アカウントの選択をユーザーに促します。
enable_granular_consent 省略可。デフォルトは true です。false に設定すると、2019 年より前に作成された OAuth クライアント ID に対して、より詳細な Google アカウントの権限が無効になります。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 以外のエラーを処理する JavaScript 関数。

入力パラメータの type フィールドには、詳細な理由が示されています。
  • popup_failed_to_open: ポップアップ ウィンドウを開けません。
  • popup_closed ポップアップ ウィンドウは、OAuth レスポンスが返される前に閉じられます。
  • unknown 他のエラーのプレースホルダ。

データ型: TokenClient

このクラスには、OAuth 2.0 トークン UX フローを開始するパブリック メソッド requestAccessToken が 1 つだけあります。

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

データ型: OverridableTokenClientConfig

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

プロパティ
scope (省略可)ユーザーの代わりにアプリケーションがアクセスできるリソースを指定するスコープをスペースで区切ったリスト。これらの値は、Google がユーザーに表示する同意画面に影響します。
include_granted_scopes 省略可。デフォルトは true です。アプリケーションは、増分承認を使用して、状況に応じて追加のスコープへのアクセスをリクエストできます。このパラメータの値を false に設定し、認証リクエストが許可されている場合、新しいアクセス トークンは、この OverridableTokenClientConfigscope がリクエストしたスコープのみを対象とします。
prompt (省略可)ユーザーに表示するプロンプトをスペースで区切ったリスト(大文字と小文字を区別)。
enable_granular_consent 省略可。デフォルトは true です。false に設定すると、2019 年より前に作成された OAuth クライアント ID に対して、より詳細な Google アカウントの権限が無効になります。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 string 必須: 確認するスコープ。
restScopes string[] (省略可)確認するその他のスコープ。
戻り値
boolean すべてのスコープが付与されている場合は true。

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

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

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

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

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

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

データ型: RevocationResponse

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

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

プロパティ
successful データ型はブール値です。成功した場合は true、失敗した場合は false
error 文字列。成功が未定義。単一の ASCII エラーコード。これには、標準の OAuth 2.0 エラーコードが含まれますが、これらに限定されません。revoke メソッドの一般的なエラー:
  • invalid_token - revoke メソッドが呼び出される前に、トークンがすでに期限切れであるか取り消されています。ほとんどの場合、accessToken に関連付けられた権限付与は取り消されていると見なすことができます。
  • invalid_request - トークンは取り消しできません。accessToken が有効な Google OAuth 2.0 認証情報であることを確認してください。
error_description 文字列。成功が未定義。人が読める ASCII テキストで、error プロパティに関する追加情報を提供します。デベロッパーはこの情報から、発生したエラーを詳細に把握できます。error_description の文字列は英語のみです。error に示されている一般的なエラーについては、対応する error_description をご覧ください。
  • invalid_token - トークンの有効期限が切れているか、取り消されています。
  • invalid_request - トークンは取り消しできません。