説明
chrome.identity
API を使用して OAuth2 アクセス トークンを取得します。
権限
identity
型
AccountInfo
プロパティ
- id
文字列
アカウントの一意の識別子。この ID はアカウントの存続期間中は変更されません。
AccountStatus
列挙型
「SYNC」
プライマリ アカウントで同期が有効になっていることを指定します。
「ANY」
プライマリ アカウントが存在するかどうかを指定します。
GetAuthTokenResult
プロパティ
- grantedScopes
string[] 省略可
拡張機能に付与された OAuth2 スコープのリスト。
- token
文字列 省略可
リクエストに関連付けられている特定のトークン。
InvalidTokenDetails
プロパティ
- token
文字列
キャッシュから削除する特定のトークン。
ProfileDetails
プロパティ
- accountStatus
AccountStatus 省略可
ProfileUserInfo
を返す必要があるプロファイルにログインしているメイン アカウントのステータス。デフォルトはSYNC
アカウント ステータスです。
ProfileUserInfo
プロパティ
- メール
文字列
現在のプロファイルにログインしているユーザー アカウントのメールアドレス。ユーザーがログインしていない場合、または
identity.email
マニフェスト権限が指定されていない場合は空になります。 - id
文字列
アカウントの一意の識別子。この ID は、アカウントの存続期間中は変更されません。ユーザーがログインしていない場合、または(M41 以降)
identity.email
マニフェスト権限が指定されていない場合は空になります。
TokenDetails
プロパティ
- アカウント
AccountInfo 省略可
トークンを返すアカウント ID。指定されていない場合、関数は Chrome プロフィールのアカウント(同期アカウントがある場合は同期アカウント、それ以外の場合は最初の Google ウェブ アカウント)を使用します。
- enableGranularPermissions
ブール値(省略可)
Chrome 87 以降enableGranularPermissions
フラグを使用すると、拡張機能はきめ細かい権限の同意画面を早期にオプトインできます。この画面では、リクエストされた権限が個別に付与または拒否されます。 - インタラクティブ
ブール値(省略可)
トークンを取得するには、ユーザーが Chrome にログインするか、アプリケーションがリクエストしたスコープを承認する必要がある場合があります。インタラクティブ フラグが
true
の場合、getAuthToken
は必要に応じてユーザーにプロンプトを表示します。フラグがfalse
の場合、または省略されている場合、プロンプトが必要になるたびにgetAuthToken
は失敗を返します。 - スコープ
string[] 省略可
リクエストする OAuth2 スコープのリスト。
scopes
フィールドが存在する場合、manifest.json で指定されたスコープのリストがオーバーライドされます。
WebAuthFlowDetails
プロパティ
- abortOnLoadForNonInteractive
ブール値(省略可)
Chrome 113 以降ページ読み込み後に非対話型リクエストの
launchWebAuthFlow
を終了するかどうか。このパラメータはインタラクティブ フローには影響しません。true
(デフォルト)に設定すると、ページが読み込まれた直後にフローが終了します。false
に設定すると、フローはtimeoutMsForNonInteractive
が完了した後にのみ終了します。これは、JavaScript を使用してページの読み込み後にリダイレクトを行う ID プロバイダに役立ちます。 - インタラクティブ
ブール値(省略可)
認証フローをインタラクティブ モードで起動するかどうか。
一部の認証フローでは結果 URL にすぐにリダイレクトされる可能性があるため、
launchWebAuthFlow
は、最初ナビゲーションで最終 URL にリダイレクトされるか、表示されるページが読み込まれるまで、ウェブビューを非表示にします。interactive
フラグがtrue
の場合、ページの読み込みが完了するとウィンドウが表示されます。フラグがfalse
の場合、または省略されている場合、最初のナビゲーションでフローが完了しないと、launchWebAuthFlow
はエラーを返します。リダイレクトに JavaScript を使用するフローの場合、
timeoutMsForNonInteractive
を設定してページにリダイレクトを実行する機会を与えるとともに、abortOnLoadForNonInteractive
をfalse
に設定できます。 - timeoutMsForNonInteractive
number 省略可
Chrome 113 以降launchWebAuthFlow
が非インタラクティブ モードで実行できる合計最大時間(ミリ秒単位)。interactive
がfalse
の場合にのみ有効です。 - URL
文字列
認証フローを開始する URL。
メソッド
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(): Promise<void>
Identity API の状態をリセットします。
- トークン キャッシュからすべての OAuth2 アクセス トークンを削除します
- ユーザーのアカウント設定を削除します
- すべての認証フローからユーザーの認証を解除します
戻り値
-
Promise<void>
Chrome 106 以降
getAccounts()
chrome.identity.getAccounts(): Promise<AccountInfo[]>
プロファイルに存在するアカウントを記述する AccountInfo オブジェクトのリストを取得します。
getAccounts
は Dev チャンネルでのみサポートされます。
戻り値
-
Promise<AccountInfo[]>
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
): Promise<GetAuthTokenResult>
manifest.json の oauth2
セクションで指定されたクライアント ID とスコープを使用して OAuth2 アクセス トークンを取得します。
Identity API はアクセス トークンをメモリにキャッシュに保存するため、トークンが必要なときにいつでも getAuthToken
を非インタラクティブに呼び出すことができます。トークン キャッシュは有効期限を自動的に処理します。
優れたユーザー エクスペリエンスを実現するには、アプリの UI からインタラクティブ トークン リクエストを開始し、認証の目的を説明することが重要です。この設定を行わないと、ユーザーがログインしていない場合は Chrome のログイン画面が表示され、ログインしている場合はコンテキストのない認証リクエストが表示されます。特に、アプリの初回起動時に getAuthToken
をインタラクティブに使用しないでください。
注: コールバックを指定して呼び出すと、この関数はオブジェクトを返すのではなく、2 つのプロパティを個別の引数としてコールバックに渡します。
パラメータ
- 詳細
TokenDetails 省略可
トークン オプション。
戻り値
-
Promise<GetAuthTokenResult>
Chrome 105 以降
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
プロフィールにログインしているユーザーのメールアドレスと難読化された GAIA ID を取得します。
identity.email
マニフェスト権限が必要です。それ以外の場合は、空の結果を返します。
この API は、次の 2 点で identity.getAccounts と異なります。返される情報はオフラインで利用でき、プロファイルのメイン アカウントにのみ適用されます。
パラメータ
- 詳細
ProfileDetails 省略可
Chrome 84 以降プロフィール オプション。
戻り値
-
Promise<ProfileUserInfo>
Chrome 106 以降
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
): string
launchWebAuthFlow
で使用するリダイレクト URL を生成します。
生成された URL は https://<app-id>.chromiumapp.org/*
パターンと一致します。
パラメータ
- パス
文字列 省略可
生成された URL の末尾に追加されるパス。
戻り値
-
文字列
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
): Promise<string | undefined>
指定された URL で認証フローを開始します。
このメソッドは、ウェブビューを起動してプロバイダの認証フローの最初の URL に移動することで、Google 以外の ID プロバイダを使用した認証フローを有効にします。プロバイダがパターン https://<app-id>.chromiumapp.org/*
に一致する URL にリダイレクトすると、ウィンドウが閉じ、最終リダイレクト URL が callback
関数に渡されます。
優れたユーザー エクスペリエンスを実現するには、アプリの UI で認証の目的を説明し、そこからインタラクティブな認証フローを開始することが重要です。これを行わないと、ユーザーにコンテキストのない承認リクエストが表示されます。特に、アプリの初回起動時にインタラクティブな認証フローを開始しないでください。
パラメータ
-
WebAuth フロー オプション。
戻り値
-
Promise<string | undefined>
Chrome 106 以降
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
Identity API のトークン キャッシュから OAuth2 アクセス トークンを削除します。
アクセス トークンが無効であることが判明した場合は、removeCachedAuthToken に渡してキャッシュから削除する必要があります。アプリは getAuthToken
を使用して新しいトークンを取得できます。
パラメータ
-
トークン情報。
戻り値
-
Promise<void>
Chrome 106 以降
イベント
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
ユーザーのプロファイルのアカウントのログイン状態が変更されたときに発生します。
パラメータ
- callback
関数
callback
パラメータは次のようになります。(account: AccountInfo, signedIn: boolean) => void
- アカウント
- signedIn
ブール値
-