Описание
Используйте 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(): 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 необязательно
Варианты токенов.
Возврат
Обещание< GetAuthTokenResult >
Хром 105+
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
Извлекает адрес электронной почты и скрытый идентификатор GAIA пользователя, вошедшего в профиль.
Требуется разрешение на доступ к манифесту identity.email
. В противном случае возвращается пустой результат.
Этот API отличается от identity.getAccounts двумя моментами: возвращаемая информация доступна офлайн и применима только к основной учётной записи профиля.
Параметры
- подробности
ПрофильДетали необязательны
Хром 84+Параметры профиля.
Возврат
Обещание< ПрофильПользователя >
Хром 106+
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.
Возврат
Обещание<строка | не определено>
Хром 106+
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
Удаляет токен доступа OAuth2 из кэша токенов Identity API.
Если токен доступа окажется недействительным, его следует передать в removeCachedAuthToken для удаления из кэша. После этого приложение может получить новый токен с помощью getAuthToken
.
Параметры
- подробности
Информация о токене.
Возврат
Обещание<void>
Хром 106+
События
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Срабатывает при изменении состояния входа в учетную запись в профиле пользователя.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(account: AccountInfo, signedIn: boolean) => void
- подписан
булев