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