Описание
Используйте 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
- подписан
булев