このリファレンスでは、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 に設定し、認証リクエストが許可されている場合、新しいアクセス トークンは、この CodeClientConfig で scope がリクエストしたスコープのみを対象とします。 |
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_consent と enable_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 モード。デフォルトでは、同意フローがポップアップで開きます。有効な値は popup と redirect です。 |
select_account |
省略可。デフォルトは 'false' です。ユーザーにアカウントの選択を求めるブール値。 |
error_callback |
(省略可)ポップアップ ウィンドウが開かなかった、または OAuth レスポンスが返される前に閉じたなど、OAuth 以外のエラーを処理する JavaScript 関数。 入力パラメータの type フィールドには、詳細な理由が示されています。
|
データ型: 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 に設定し、認証リクエストが許可されている場合、新しいアクセス トークンは、この TokenClientConfig で scope がリクエストしたスコープのみを対象とします。 |
prompt |
省略可。デフォルトは 'select_account' です。ユーザーに表示するプロンプトをスペースで区切ったリスト(大文字と小文字を区別)。有効な値は次のとおりです。
|
enable_granular_consent |
省略可。デフォルトは true です。false に設定すると、2019 年より前に作成された OAuth クライアント ID に対して、より詳細な Google アカウントの権限が無効になります。enable_granular_consent と enable_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 フィールドには、詳細な理由が示されています。
|
データ型: TokenClient
このクラスには、OAuth 2.0 トークン UX フローを開始するパブリック メソッド requestAccessToken
が 1 つだけあります。
interface TokenClient {
requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
引数 | ||
---|---|---|
overrideConfig |
OverridableTokenClientConfig | (省略可)このメソッドでオーバーライドする構成。 |
データ型: OverridableTokenClientConfig
次の表に、OverridableTokenClientConfig
データ型のプロパティを示します。
プロパティ | |
---|---|
scope |
(省略可)ユーザーの代わりにアプリケーションがアクセスできるリソースを指定するスコープをスペースで区切ったリスト。これらの値は、Google がユーザーに表示する同意画面に影響します。 |
include_granted_scopes |
省略可。デフォルトは true です。アプリケーションは、増分承認を使用して、状況に応じて追加のスコープへのアクセスをリクエストできます。このパラメータの値を false に設定し、認証リクエストが許可されている場合、新しいアクセス トークンは、この OverridableTokenClientConfig で scope がリクエストしたスコープのみを対象とします。 |
prompt |
(省略可)ユーザーに表示するプロンプトをスペースで区切ったリスト(大文字と小文字を区別)。 |
enable_granular_consent |
省略可。デフォルトは true です。false に設定すると、2019 年より前に作成された OAuth クライアント ID に対して、より詳細な Google アカウントの権限が無効になります。enable_granular_consent と enable_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 メソッドの一般的なエラー:
|
error_description |
文字列。成功が未定義。人が読める ASCII テキストで、error プロパティに関する追加情報を提供します。デベロッパーはこの情報から、発生したエラーを詳細に把握できます。error_description の文字列は英語のみです。error に示されている一般的なエラーについては、対応する error_description をご覧ください。
|