chrome.identity

Описание

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

Разрешения

identity

Типы

AccountInfo

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

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

    нить

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

AccountStatus

Хром 84+

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

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

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

GetAuthTokenResult

Хром 105+

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

  • предоставленоОбласти применения

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

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

  • жетон

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

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

InvalidTokenDetails

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

  • жетон

    нить

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

ProfileDetails

Хром 84+

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

  • Статус аккаунта

    Статус аккаунта необязательно

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

ProfileUserInfo

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

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

    нить

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

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

    нить

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

TokenDetails

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

  • счет

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

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

  • EnableGranularPermissions

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

    Хром 87+

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

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

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

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

  • объемы

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

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

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

WebAuthFlowDetails

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

  • abortOnLoadForNonInteractive

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

    Хром 113+

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

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

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

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

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

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

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

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

  • таймаутMsForNonInteractive

    номер необязательно

    Хром 113+

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

  • URL

    нить

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

Методы

clearAllCachedAuthTokens()

Обещание Chrome 87+
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)

Сбрасывает состояние Identity API:

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

Параметры

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

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

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 106+

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

getAccounts()

Канал разработчиков Promise
chrome.identity.getAccounts(
  callback?: function,
)

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

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

Параметры

Возврат

  • Обещание< AccountInfo []>

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

getAuthToken()

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

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

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

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

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

Параметры

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

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

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

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

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

    Параметр callback выглядит так:

    (result: GetAuthTokenResult) => void

Возврат

  • Обещание < GetAuthTokenResult >

    Хром 105+

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

getProfileUserInfo()

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

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

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

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

Параметры

Возврат

  • Обещание < ProfileUserInfo >

    Хром 106+

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

getRedirectURL()

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

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

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

Параметры

  • путь

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

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

Возврат

  • нить

launchWebAuthFlow()

Обещать
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

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

Этот метод включает потоки аутентификации с поставщиками удостоверений, не принадлежащими Google, путем запуска веб-представления и перехода к первому URL-адресу в потоке аутентификации поставщика. Когда провайдер перенаправляет на URL-адрес, соответствующий шаблону https://<app-id>.chromiumapp.org/* , окно закроется, и окончательный URL-адрес перенаправления будет передан в функцию callback .

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

Параметры

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

    Параметры потока WebAuth.

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

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

    Параметр callback выглядит так:

    (responseUrl?: string) => void

    • URL-адрес ответа

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

Возврат

  • Обещание<строка | не определено>

    Хром 106+

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

removeCachedAuthToken()

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

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

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

Параметры

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

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

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

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

    Параметр callback выглядит так:

    () => void

Возврат

  • Обещание<void>

    Хром 106+

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

События

onSignInChanged

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

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

Параметры