Описание
 Используйте API chrome.identity для получения токенов доступа OAuth2.
Разрешения
identity Типы
AccountInfo
Характеристики
- идентификаторнить Уникальный идентификатор учётной записи. Этот идентификатор не изменится в течение всего срока действия учётной записи. 
AccountStatus
Перечисление
 «СИНХРОНИЗАЦИЯ»  "ЛЮБОЙ"
 Указывает, что синхронизация включена для основной учетной записи. 
 Указывает на наличие основного счета, если таковой имеется.
GetAuthTokenResult
Характеристики
- grantScopesстрока[] необязательная Список областей OAuth2, предоставленных расширению. 
- токенстрока необязательная Конкретный токен, связанный с запросом. 
InvalidTokenDetails
Характеристики
- токеннить Конкретный токен, который следует удалить из кэша. 
ProfileDetails
Характеристики
- Статус аккаунта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()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
): Promise<void>
Сбрасывает состояние Identity API:
- Удаляет все токены доступа OAuth2 из кэша токенов.
- Удаляет настройки учетной записи пользователя
- Деавторизация пользователя из всех потоков аутентификации
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 106+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getAccounts()
chrome.identity.getAccounts(
callback?: function,
): Promise<AccountInfo[]>
Извлекает список объектов AccountInfo, описывающих учетные записи, присутствующие в профиле.
 getAccounts поддерживается только на канале dev. 
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(accounts: AccountInfo[]) => void - счета
 
Возврат
- Обещание< Информация об учетной записи []> - Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
): Promise<GetAuthTokenResult>
 Получает токен доступа OAuth2, используя идентификатор клиента и области действия, указанные в разделе oauth2 manifest.json .
 API Identity кэширует токены доступа в памяти, поэтому можно вызывать getAuthToken неинтерактивно в любое время, когда требуется токен. Кэш токенов автоматически обрабатывает истечение срока действия.
 Для обеспечения комфортного пользовательского опыта важно, чтобы интерактивные запросы токенов инициировались пользовательским интерфейсом вашего приложения, объясняя, для чего нужна авторизация. В противном случае пользователи будут получать запросы авторизации или экраны входа Chrome, если они не вошли в систему, без какого-либо контекста. В частности, не используйте getAuthToken в интерактивном режиме при первом запуске приложения.
Примечание: при вызове с обратным вызовом эта функция вместо возврата объекта вернет два свойства как отдельные аргументы, переданные обратному вызову.
Параметры
- подробностиTokenDetails необязательно Варианты токенов. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result: GetAuthTokenResult) => void - результатХром 105+
 
Возврат
- Обещание< GetAuthTokenResult > Хром 105+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
): Promise<ProfileUserInfo>
Извлекает адрес электронной почты и скрытый идентификатор GAIA пользователя, вошедшего в профиль.
 Требуется разрешение на доступ к манифесту identity.email . В противном случае возвращается пустой результат.
Этот API отличается от identity.getAccounts двумя моментами: возвращаемая информация доступна офлайн и применима только к основной учётной записи профиля.
Параметры
- подробностиПрофильДетали необязательны Хром 84+Параметры профиля. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(userInfo: ProfileUserInfo) => void - информация о пользователе
 
Возврат
- Обещание< ПрофильПользователя > Хром 106+- Обещания поддерживаются только для 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-адресу.
 Этот метод позволяет осуществлять потоки аутентификации с поставщиками удостоверений, отличными от Google, запуская веб-представление и направляя его к первому URL-адресу в потоке аутентификации поставщика. Когда поставщик перенаправляет на URL-адрес, соответствующий шаблону https://<app-id>.chromiumapp.org/* , окно закрывается, а окончательный URL-адрес перенаправления передается в функцию callback .
Для обеспечения комфортного пользовательского опыта важно, чтобы интерактивные процессы авторизации инициировались пользовательским интерфейсом вашего приложения, объясняя, для чего нужна авторизация. В противном случае пользователи будут получать запросы авторизации без контекста. В частности, не запускайте интерактивный процесс авторизации при первом запуске приложения.
Параметры
- подробностиПараметры потока WebAuth. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(responseUrl?: string) => void - responseUrlстрока необязательная 
 
Возврат
- Обещание<строка | не определено> Хром 106+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
): Promise<void>
Удаляет токен доступа OAuth2 из кэша токенов Identity API.
 Если токен доступа окажется недействительным, его следует передать в removeCachedAuthToken для удаления из кэша. После этого приложение может получить новый токен с помощью getAuthToken . 
Параметры
- подробностиИнформация о токене. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 106+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
События
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Срабатывает при изменении состояния входа в учетную запись в профиле пользователя.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(account: AccountInfo, signedIn: boolean) => void - подписанбулев