chrome.identity

Описание

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

Разрешения

identity

Типы

AccountInfo

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

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

    нить

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

AccountStatus

Хром 84+

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

«СИНХРОНИЗАЦИЯ»
Указывает, что синхронизация включена для основной учетной записи.

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

GetAuthTokenResult

Хром 105+

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

  • grantScopes

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

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

  • токен

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

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

InvalidTokenDetails

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

  • токен

    нить

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

ProfileDetails

Хром 84+

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

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

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

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

ProfileUserInfo

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

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

    нить

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

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

    нить

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

TokenDetails

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

  • счет

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

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

  • enableGranularPermissions

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

    Хром 87+

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

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

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

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

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

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

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

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

WebAuthFlowDetails

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

  • abortOnLoadForNonInteractive

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

    Хром 113+

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

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

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

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

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

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

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

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

  • timeoutMsForNonInteractive

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

    Хром 113+

    Максимальное время (в миллисекундах), в течение которого launchWebAuthFlow может работать в неинтерактивном режиме. Действует только если interactive равно false .

  • URL-адрес

    нить

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

Методы

clearAllCachedAuthTokens()

Хром 87+
chrome.identity.clearAllCachedAuthTokens(): Promise<void>

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

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

Возврат

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

    Хром 106+

getAccounts()

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

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

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

Возврат

getAuthToken()

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

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

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

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

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

Параметры

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

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

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

Возврат

getProfileUserInfo()

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

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

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

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

Параметры

Возврат

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 .

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

Параметры

Возврат

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

    Хром 106+

removeCachedAuthToken()

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

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

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

Параметры

Возврат

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

    Хром 106+

События

onSignInChanged

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

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

Параметры