Описание
Используйте API chrome.identity для получения токенов доступа OAuth2.
Разрешения
identity Типы
AccountInfo
Характеристики
- идентификатор
нить
Уникальный идентификатор учетной записи. Этот идентификатор не изменится в течение всего срока действия учетной записи.
AccountStatus
Перечисление
"SYNC" "ЛЮБОЙ"
Указывает, что синхронизация включена для основной учетной записи.
Указывает на наличие основного счета, если таковой имеется.
GetAuthTokenResult
Характеристики
- grantedScopes
строка[] необязательный
Список областей действия OAuth2, предоставленных расширению.
- токен
строка необязательный
Конкретный токен, связанный с запросом.
InvalidTokenDetails
Характеристики
- токен
нить
Конкретный токен, который следует удалить из кэша.
ProfileDetails
Характеристики
- статус учетной записи
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.identity.clearAllCachedAuthTokens(
callback?: function,
): Promise<void>
Сбрасывает состояние API идентификации:
- Удаляет все токены доступа OAuth2 из кэша токенов.
- Удаляет настройки учетной записи пользователя.
- Отключает пользователя от всех процессов аутентификации.
Параметры
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:() => void
Возвраты
Обещание<пустота>
Chrome 106+Возвращает Promise, который разрешается после очистки состояния.
Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
): Promise<AccountInfo[]>
Получает список объектов AccountInfo, описывающих учетные записи, присутствующие в профиле.
getAccounts поддерживается только в канале для разработчиков.
Параметры
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(accounts: AccountInfo[]) => void
- счета
Возвраты
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
callbackparameter looks like:(result: GetAuthTokenResult) => void
- результатChrome 105+
Возвраты
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 двумя способами. Возвращаемая информация доступна в автономном режиме и относится только к основной учетной записи профиля.
Параметры
- подробности
ProfileDetails (необязательно)
Chrome 84+Параметры профиля.
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(userInfo: ProfileUserInfo) => void
- информация о пользователе
Возвраты
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,
)
Событие срабатывает при изменении состояния входа в систему для учетной записи в профиле пользователя.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(account: AccountInfo, signedIn: boolean) => void
- signedIn
логический