chrome.identity

Описание

Используйте API chrome.identity для получения токенов доступа OAuth2.

Разрешения

identity

Типы

AccountInfo

Характеристики

  • идентификатор

    нить

    Уникальный идентификатор учетной записи. Этот идентификатор не изменится в течение всего срока действия учетной записи.

AccountStatus

Chrome 84+

Перечисление

"SYNC"
Указывает, что синхронизация включена для основной учетной записи.

"ЛЮБОЙ"
Указывает на наличие основного счета, если таковой имеется.

GetAuthTokenResult

Chrome 105+

Характеристики

  • grantedScopes

    строка[] необязательный

    Список областей действия OAuth2, предоставленных расширению.

  • токен

    строка необязательный

    Конкретный токен, связанный с запросом.

InvalidTokenDetails

Характеристики

  • токен

    нить

    Конкретный токен, который следует удалить из кэша.

ProfileDetails

Chrome 84+

Характеристики

  • статус учетной записи

    AccountStatus (необязательно)

    Статус основной учетной записи, вошедшей в профиль, для которого должен быть возвращен ProfileUserInfo . По умолчанию используется статус SYNC учетной записи.

ProfileUserInfo

Характеристики

  • электронная почта

    нить

    Адрес электронной почты учетной записи пользователя, вошедшего в текущий профиль. Пусто, если пользователь не авторизован или не указано разрешение в манифесте identity.email .

  • идентификатор

    нить

    Уникальный идентификатор учетной записи. Этот идентификатор не изменится в течение всего срока действия учетной записи. Пусто, если пользователь не авторизован или (в M41+) не указано разрешение в манифесте identity.email .

TokenDetails

Характеристики

  • счет

    Идентификатор учетной записи, токен которой должен быть возвращен. Если не указан, функция будет использовать учетную запись из профиля Chrome: учетную запись синхронизации, если она существует, или, в противном случае, первую веб-учетную запись Google.

  • enableGranularPermissions

    логический необязательный

    Chrome 87+

    Флаг enableGranularPermissions позволяет расширениям заранее подключаться к экрану подтверждения прав доступа с детальной настройкой, на котором запрашиваемые разрешения предоставляются или отклоняются по отдельности.

  • интерактивный

    логический необязательный

    Для получения токена пользователю может потребоваться войти в Chrome или подтвердить запрошенные приложением области действия. Если флаг interactive имеет значение true , getAuthToken запросит у пользователя подтверждение при необходимости. Если флаг false или отсутствует, getAuthToken вернет ошибку всякий раз, когда потребуется запрос подтверждения.

  • области

    строка[] необязательный

    Список областей действия OAuth2 для запроса.

    Если поле scopes присутствует, оно переопределяет список областей действия, указанных в файле manifest.json.

WebAuthFlowDetails

Характеристики

  • abortOnLoadForNonInteractive

    логический необязательный

    Chrome 113+

    Следует ли завершать выполнение launchWebAuthFlow для неинтерактивных запросов после загрузки страницы. Этот параметр не влияет на интерактивные потоки.

    Если установлено значение true (по умолчанию), процесс завершится сразу после загрузки страницы. Если установлено значение false , процесс завершится только после истечения времени ожидания timeoutMsForNonInteractive . Это полезно для поставщиков идентификации, использующих JavaScript для выполнения перенаправлений после загрузки страницы.

  • интерактивный

    логический необязательный

    Запускать ли процесс аутентификации в интерактивном режиме.

    Поскольку некоторые сценарии аутентификации могут немедленно перенаправлять на URL-адрес результата, launchWebAuthFlow скрывает свое веб-представление до тех пор, пока первая навигация либо не перенаправит на конечный URL-адрес, либо не завершит загрузку страницы, предназначенной для отображения.

    Если флаг interactive имеет значение true , окно будет отображено после завершения загрузки страницы. Если флаг имеет false или отсутствует, launchWebAuthFlow вернет ошибку, если начальная навигация не завершит процесс.

    Для сценариев, использующих JavaScript для перенаправления, abortOnLoadForNonInteractive можно установить в значение false в сочетании с параметром timeoutMsForNonInteractive , чтобы дать странице возможность выполнить перенаправление.

  • timeoutMsForNonInteractive

    число необязательно

    Chrome 113+

    Максимальное время в миллисекундах, в течение которого launchWebAuthFlow может работать в неинтерактивном режиме. Эффект проявляется только в том случае, если interactive имеет значение false .

  • url

    нить

    URL-адрес, инициирующий процесс аутентификации.

Методы

clearAllCachedAuthTokens()

Promise Chrome 87+
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)
: Promise<void>

Сбрасывает состояние API идентификации:

  • Удаляет все токены доступа OAuth2 из кэша токенов.
  • Удаляет настройки учетной записи пользователя.
  • Отключает пользователя от всех процессов аутентификации.

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 106+

    Возвращает Promise, который разрешается после очистки состояния.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getAccounts()

Канал Promise Dev
chrome.identity.getAccounts(
  callback?: function,
)
: Promise<AccountInfo[]>

Получает список объектов AccountInfo, описывающих учетные записи, присутствующие в профиле.

getAccounts поддерживается только в канале для разработчиков.

Параметры

Возвраты

  • Promise< AccountInfo []>

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getAuthToken()

Обещать
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)
: Promise<GetAuthTokenResult>

Получает токен доступа OAuth2, используя идентификатор клиента и области действия, указанные в разделе oauth2 файла manifest.json .

API Identity кэширует токены доступа в памяти, поэтому можно вызывать getAuthToken в неинтерактивном режиме всякий раз, когда требуется токен. Кэш токенов автоматически обрабатывает срок их действия.

Для обеспечения удобного пользовательского интерфейса важно, чтобы запросы на интерактивный токен инициировались самим интерфейсом приложения, объясняя, для чего нужна авторизация. В противном случае пользователи будут получать запросы на авторизацию или экраны входа в Chrome, если они не авторизованы, без какого-либо контекста. В частности, не используйте getAuthToken в интерактивном режиме при первом запуске приложения.

Примечание: При вызове с функцией обратного вызова эта функция вернет два свойства в качестве отдельных аргументов, передаваемых в функцию обратного вызова.

Параметры

  • подробности

    TokenDetails ( необязательно)

    Варианты токенов.

  • перезвонить

    функция необязательна

    The callback parameter looks like:

    (result: GetAuthTokenResult) => void

Возвраты

  • Promise< GetAuthTokenResult >

    Chrome 105+

    Возвращает Promise, который разрешается с токеном доступа OAuth2, указанным в манифесте, или отклоняется, если произошла ошибка. Параметр grantedScopes заполняется начиная с Chrome 87. Если он доступен, этот параметр содержит список предоставленных областей действия, соответствующих возвращенному токену.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getProfileUserInfo()

Обещать
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)
: Promise<ProfileUserInfo>

Получает адрес электронной почты и зашифрованный идентификатор Gaia пользователя, вошедшего в профиль.

Для выполнения этой операции требуется разрешение identity.email в манифесте. В противном случае возвращается пустой результат.

Этот API отличается от identity.getAccounts двумя способами. Возвращаемая информация доступна в автономном режиме и относится только к основной учетной записи профиля.

Параметры

Возвраты

  • Promise< ProfileUserInfo >

    Chrome 106+

    Возвращает Promise, который разрешается с ProfileUserInfo основной учетной записи Chrome или с пустым ProfileUserInfo , если учетная запись с указанными details не существует.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)
: string

Генерирует URL-адрес перенаправления, который будет использоваться в launchWebAuthFlow .

Сгенерированные URL-адреса соответствуют шаблону https://<app-id>.chromiumapp.org/* .

Параметры

  • путь

    строка необязательный

    Путь, добавляемый в конец сгенерированного URL-адреса.

Возвраты

  • нить

launchWebAuthFlow()

Обещать
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)
: Promise<string | undefined>

Запускает процесс аутентификации по указанному URL-адресу.

This method enables auth flows with non-Google identity providers by launching a web view and navigating it to the first URL in the provider's auth flow. When the provider redirects to a URL matching the pattern https://<app-id>.chromiumapp.org/* , the window will close, and the final redirect URL will be passed to the callback function.

Для обеспечения удобного пользовательского интерфейса важно, чтобы в вашем приложении запускались интерактивные потоки аутентификации, объясняющие, для чего нужна авторизация. В противном случае пользователи будут получать запросы на авторизацию без контекста. В частности, не запускайте интерактивный поток аутентификации при первом запуске приложения.

Параметры

  • подробности

    Варианты обработки аутентификации WebAuth.

  • перезвонить

    function optional

    Параметр callback выглядит следующим образом:

    (responseUrl?: string) => void

    • responseUrl

      строка необязательный

Возвраты

  • Promise<string | undefined>

    Chrome 106+

    Возвращает промис, который разрешается с перенаправлением URL-адреса обратно в ваше приложение.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

removeCachedAuthToken()

Обещать
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)
: Promise<void>

Удаляет токен доступа OAuth2 из кэша токенов Identity API.

Если будет обнаружено, что токен доступа недействителен, его следует передать методу removeCachedAuthToken для удаления из кэша. После этого приложение может получить новый токен с помощью getAuthToken .

Параметры

  • подробности

    Информация о токене.

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 106+

    Возвращает Promise, который срабатывает, когда токен удаляется из кэша.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

События

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

Событие срабатывает при изменении состояния входа в систему для учетной записи в профиле пользователя.

Параметры