chrome.identity

説明

chrome.identity API を使用して OAuth2 アクセス トークンを取得します。

権限

identity

AccountInfo

プロパティ

  • id

    文字列

    アカウントの一意の識別子。この ID はアカウントの存続期間中は変更されません。

AccountStatus

Chrome 84 以降

列挙型

「SYNC」
プライマリ アカウントで同期が有効になっていることを指定します。

「ANY」
プライマリ アカウントが存在するかどうかを指定します。

GetAuthTokenResult

Chrome 105 以降

プロパティ

  • grantedScopes

    string[] 省略可

    拡張機能に付与された OAuth2 スコープのリスト。

  • token

    文字列 省略可

    リクエストに関連付けられている特定のトークン。

InvalidTokenDetails

プロパティ

  • token

    文字列

    キャッシュから削除する特定のトークン。

ProfileDetails

Chrome 84 以降

プロパティ

  • 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 を設定してページにリダイレクトを実行する機会を与えるとともに、abortOnLoadForNonInteractivefalse に設定できます。

  • timeoutMsForNonInteractive

    number 省略可

    Chrome 113 以降

    launchWebAuthFlow が非インタラクティブ モードで実行できる合計最大時間(ミリ秒単位)。interactivefalse の場合にのみ有効です。

  • URL

    文字列

    認証フローを開始する URL。

メソッド

clearAllCachedAuthTokens()

Chrome 87 以降
chrome.identity.clearAllCachedAuthTokens(): Promise<void>

Identity API の状態をリセットします。

  • トークン キャッシュからすべての OAuth2 アクセス トークンを削除します
  • ユーザーのアカウント設定を削除します
  • すべての認証フローからユーザーの認証を解除します

戻り値

  • Promise<void>

    Chrome 106 以降

getAccounts()

Dev チャンネル
chrome.identity.getAccounts(): Promise<AccountInfo[]>

プロファイルに存在するアカウントを記述する AccountInfo オブジェクトのリストを取得します。

getAccounts は Dev チャンネルでのみサポートされます。

戻り値

getAuthToken()

chrome.identity.getAuthToken(
  details?: TokenDetails,
)
: Promise<GetAuthTokenResult>

manifest.json の oauth2 セクションで指定されたクライアント ID とスコープを使用して OAuth2 アクセス トークンを取得します。

Identity API はアクセス トークンをメモリにキャッシュに保存するため、トークンが必要なときにいつでも getAuthToken を非インタラクティブに呼び出すことができます。トークン キャッシュは有効期限を自動的に処理します。

優れたユーザー エクスペリエンスを実現するには、アプリの UI からインタラクティブ トークン リクエストを開始し、認証の目的を説明することが重要です。この設定を行わないと、ユーザーがログインしていない場合は Chrome のログイン画面が表示され、ログインしている場合はコンテキストのない認証リクエストが表示されます。特に、アプリの初回起動時に getAuthToken をインタラクティブに使用しないでください。

注: コールバックを指定して呼び出すと、この関数はオブジェクトを返すのではなく、2 つのプロパティを個別の引数としてコールバックに渡します。

パラメータ

  • 詳細

    TokenDetails 省略可

    トークン オプション。

戻り値

getProfileUserInfo()

chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
)
: Promise<ProfileUserInfo>

プロフィールにログインしているユーザーのメールアドレスと難読化された GAIA ID を取得します。

identity.email マニフェスト権限が必要です。それ以外の場合は、空の結果を返します。

この API は、次の 2 点で identity.getAccounts と異なります。返される情報はオフラインで利用でき、プロファイルのメイン アカウントにのみ適用されます。

パラメータ

  • 詳細

    ProfileDetails 省略可

    Chrome 84 以降

    プロフィール オプション。

戻り値

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 で認証の目的を説明し、そこからインタラクティブな認証フローを開始することが重要です。これを行わないと、ユーザーにコンテキストのない承認リクエストが表示されます。特に、アプリの初回起動時にインタラクティブな認証フローを開始しないでください。

パラメータ

戻り値

  • 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