Google アカウント認証 JavaScript API リファレンス

このリファレンスでは、Google から認証コードまたはアクセス トークンを取得するために使用される Google アカウント認証 JavaScript 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 に設定し、認可リクエストが承認された場合、新しいアクセス トークンは、この CodeClientConfig でリクエストされた scope のスコープのみを対象とします。
redirect_uri リダイレクト UX に必要です。ユーザーが認可フローを完了した後に API サーバーがユーザーをリダイレクトする場所を指定します。この値は、API Console で構成した OAuth 2.0 クライアントの承認済みリダイレクト URI のいずれかと完全に一致し、リダイレクト URI の検証ルールに準拠している必要があります。このプロパティはポップアップ UX で無視されます。
callback ポップアップ UX に必要です。返されたコード レスポンスを処理する JavaScript 関数。このプロパティはリダイレクト UX で無視されます。
state 省略可。リダイレクト UX に推奨されます。認可リクエストと認可サーバーのレスポンスの間で状態を維持するためにアプリケーションが使用する文字列値を指定します。
enable_granular_consent 非推奨。設定しても効果はありません。同意の動作の詳細については、 きめ細かい権限をご覧ください。
enable_serial_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

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

interface CodeClient {   requestCode(): void; } 

データ型: CodeResponse

ポップアップ UX の callback メソッドには、CodeResponse JavaScript オブジェクトが渡されます。リダイレクト 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 に設定し、認可リクエストが承認された場合、新しいアクセス トークンは、この TokenClientConfig でリクエストされた scope のスコープのみを対象とします。
prompt 省略可。デフォルトは 'select_account' です。ユーザーに提示するプロンプトのスペース区切り、大文字と小文字を区別するリスト。次の値があります。
  • 空の文字列: アプリがアクセスをリクエストした初回のみ、ユーザーにプロンプトが表示されます。他の値と組み合わせて指定することはできません。
  • 'none': 認証画面や同意画面を表示しません。他の値と同時に指定することはできません。
  • 'consent': ユーザーに同意を求めます。
  • 'select_account': ユーザーにアカウントの選択を求めます。
enable_granular_consent 非推奨。設定しても効果はありません。同意の動作の詳細については、 きめ細かい権限をご覧ください。
enable_serial_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 フローを開始する 1 つの公開メソッド requestAccessToken のみがあります。

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

データ型: OverridableTokenClientConfig

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

プロパティ
scope 省略可。アプリケーションがユーザーの代わりにアクセスできるリソースを識別するスコープのスペース区切りリスト。これらの値は、Google がユーザーに表示する同意画面に通知されます。
include_granted_scopes 省略可。デフォルトは true です。アプリケーションが段階的認証を使用して、コンテキスト内の追加のスコープへのアクセスをリクエストできるようにします。このパラメータの値を false に設定し、認可リクエストが承認された場合、新しいアクセス トークンは、この OverridableTokenClientConfig でリクエストされた scope のスコープのみを対象とします。
prompt 省略可。ユーザーに提示するプロンプトのスペース区切りの大文字と小文字を区別するリスト。
enable_granular_consent 非推奨。設定しても効果はありません。同意の動作の詳細については、 きめ細かい権限をご覧ください。
enable_serial_consent 非推奨。設定しても効果はありません。同意の動作の詳細については、 きめ細かい権限をご覧ください。
login_hint 省略可。リクエストを承認するユーザーがわかっている場合は、このプロパティを使用して Google にログインヒントを提供できます。成功すると、アカウントの選択はスキップされます。ターゲット ユーザーのメールアドレスまたは ID トークンの sub フィールド値。詳細については、OpenID Connect ドキュメントの login_hint フィールドをご覧ください。
state 省略可。非推奨。認可リクエストと認可サーバーのレスポンスの間で状態を維持するためにアプリケーションが使用する文字列値を指定します。

データ型: TokenResponse

ポップアップ UX のコールバック メソッドには、TokenResponse JavaScript オブジェクトが渡されます。

次の表に、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 メソッドの一般的なエラー:
  • invalid_token - revoke メソッドが呼び出される前に、トークンがすでに期限切れになっているか、取り消されている。ほとんどの場合、accessToken に関連付けられた権限付与は取り消されたと見なすことができます。
  • invalid_request - トークンを取り消すことができません。accessToken が有効な Google OAuth 2.0 認証情報であることを確認する必要があります。
error_description 文字列。成功した場合は未定義。人が読める ASCII テキストは、error プロパティに関する追加情報を提供します。デベロッパーはこれを使用して、発生したエラーをより深く理解できます。error_description 文字列は英語のみです。error に記載されている一般的なエラーに対応する error_description:
  • invalid_token - トークンの有効期限が切れたか、取り消されました。
  • invalid_request - トークンを取り消すことができません。