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()

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

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

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

Возвраты

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

    Chrome 106+

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

getAccounts()

Канал для разработчиков
chrome.identity.getAccounts(): Promise<AccountInfo[]>

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

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

Возвраты

getAuthToken()

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

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

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

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

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

Параметры

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

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

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

Возвраты

  • Promise< GetAuthTokenResult >

    Chrome 105+

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

getProfileUserInfo()

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

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

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

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

Параметры

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

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

    Chrome 84+

    Параметры профиля.

Возвраты

  • Promise< ProfileUserInfo >

    Chrome 106+

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

getRedirectURL()

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

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

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

Параметры

  • путь

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

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

Возвраты

  • нить

launchWebAuthFlow()

chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
)
: Promise<string | undefined>

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

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

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

Параметры

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

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

Возвраты

  • Promise<string | undefined>

    Chrome 106+

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

removeCachedAuthToken()

chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
)
: Promise<void>

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

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

Параметры

Возвраты

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

    Chrome 106+

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

События

onSignInChanged

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

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

Параметры