Описание
Используйте 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(): Promise<void>
Сбрасывает состояние API идентификации:
- Удаляет все токены доступа OAuth2 из кэша токенов.
- Удаляет настройки учетной записи пользователя.
- Отключает пользователя от всех процессов аутентификации.
Возвраты
Обещание<пустота>
Chrome 106+Возвращает Promise, который разрешается после очистки состояния.
getAccounts()
chrome.identity.getAccounts(): Promise<AccountInfo[]>
Получает список объектов AccountInfo, описывающих учетные записи, присутствующие в профиле.
getAccounts поддерживается только в канале для разработчиков.
Возвраты
Promise< AccountInfo []>
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,
)
Событие срабатывает при изменении состояния входа в систему для учетной записи в профиле пользователя.
Параметры
- перезвонить
функция
Параметр
callbackвыглядит следующим образом:(account: AccountInfo, signedIn: boolean) => void
- signedIn
логический