Описание
Используйте API chrome.identity
для получения токенов доступа OAuth2.
Разрешения
identity
Типы
AccountInfo
Характеристики
- идентификатор
нить
Уникальный идентификатор учетной записи. Этот идентификатор не изменится в течение всего срока существования учетной записи.
AccountStatus
Перечисление
"СИНХР" "ЛЮБОЙ"
Указывает, что синхронизация включена для основной учетной записи.
Указывает наличие основной учетной записи, если таковая имеется.
GetAuthTokenResult
Характеристики
- предоставленоОбласти применения
строка[] необязательно
Список областей OAuth2, предоставленных расширению.
- жетон
строка необязательна
Конкретный токен, связанный с запросом.
InvalidTokenDetails
Характеристики
- жетон
нить
Конкретный токен, который следует удалить из кэша.
ProfileDetails
Характеристики
- Статус аккаунта
Статус аккаунта необязательно
Состояние основной учетной записи, вошедшей в профиль, профиль которого
ProfileUserInfo
должен быть возвращен. По умолчанию используется статус учетной записиSYNC
.
ProfileUserInfo
Характеристики
- электронная почта
нить
Адрес электронной почты учетной записи пользователя, вошедшего в текущий профиль. Пусто, если пользователь не вошел в систему или не указано разрешение манифеста
identity.email
. - идентификатор
нить
Уникальный идентификатор учетной записи. Этот идентификатор не изменится в течение всего срока существования учетной записи. Пусто, если пользователь не вошел в систему или (в M41+) не указано разрешение
identity.email
.
TokenDetails
Характеристики
- счет
Информация об аккаунте необязательно
Идентификатор учетной записи, токен которого должен быть возвращен. Если не указано, функция будет использовать учетную запись из профиля Chrome: учетную запись синхронизации, если она есть, или, в противном случае, первую веб-учетную запись Google.
- EnableGranularPermissions
логическое значение необязательно
Хром 87+Флаг
enableGranularPermissions
позволяет расширениям заранее соглашаться на экран согласия с детальными разрешениями, на котором запрошенные разрешения предоставляются или отклоняются индивидуально. - интерактивный
логическое значение необязательно
Для получения токена пользователю может потребоваться войти в Chrome или утвердить запрошенные области действия приложения. Если интерактивный флаг имеет
true
,getAuthToken
при необходимости предложит пользователю. Если флаг имеетfalse
или опущен,getAuthToken
будет возвращать ошибку каждый раз, когда потребуется запрос. - объемы
строка[] необязательно
Список областей OAuth2 для запроса.
Если поле
scopes
присутствует, оно переопределяет список областей, указанный в манифесте.json.
WebAuthFlowDetails
Характеристики
- abortOnLoadForNonInteractive
логическое значение необязательно
Хром 113+Следует ли прекращать
launchWebAuthFlow
для неинтерактивных запросов после загрузки страницы. Этот параметр не влияет на интерактивные потоки.Если установлено
true
(по умолчанию), поток завершится сразу после загрузки страницы. Если установлено значениеfalse
, поток завершится только после прохожденияtimeoutMsForNonInteractive
. Это полезно для поставщиков удостоверений, которые используют JavaScript для выполнения перенаправления после загрузки страницы. - интерактивный
логическое значение необязательно
Запускать ли поток аутентификации в интерактивном режиме.
Поскольку некоторые потоки аутентификации могут немедленно перенаправляться на конечный URL-адрес,
launchWebAuthFlow
скрывает свое веб-представление до тех пор, пока первая навигация не перенаправит на конечный URL-адрес или не завершит загрузку страницы, предназначенной для отображения.Если
interactive
флаг имеет значениеtrue
, окно будет отображаться после завершения загрузки страницы. Если флаг имеет значениеfalse
или опущен,launchWebAuthFlow
вернет ошибку, если первоначальная навигация не завершит поток.Для потоков, использующих JavaScript для перенаправления,
abortOnLoadForNonInteractive
может быть присвоено значениеfalse
в сочетании с настройкойtimeoutMsForNonInteractive
, чтобы дать странице возможность выполнять любые перенаправления. - таймаутMsForNonInteractive
номер необязательно
Хром 113+Максимальное время в миллисекундах, в течение которого
launchWebAuthFlow
может работать в неинтерактивном режиме. Имеет эффект только в том случае, еслиinteractive
имеет значениеfalse
. - URL
нить
URL-адрес, который инициирует поток аутентификации.
Методы
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Сбрасывает состояние Identity API:
- Удаляет все токены доступа OAuth2 из кэша токенов.
- Удаляет настройки учетной записи пользователя
- Отменяет авторизацию пользователя во всех потоках аутентификации.
Параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 106+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Получает список объектов AccountInfo, описывающих учетные записи, присутствующие в профиле.
getAccounts
поддерживается только на канале разработки.
Параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(accounts: AccountInfo[]) => void
- счета
Возврат
Обещание< AccountInfo []>
Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Получает токен доступа OAuth2, используя идентификатор клиента и области, указанные в разделе oauth2
файла Manifest.json .
Identity API кэширует токены доступа в памяти, поэтому можно вызывать getAuthToken
в неинтерактивном режиме каждый раз, когда требуется токен. Кэш токенов автоматически обрабатывает срок действия.
Для удобства пользователей важно, чтобы интерактивные запросы токенов инициировались пользовательским интерфейсом вашего приложения, объясняющим, для чего нужна авторизация. Если этого не сделать, ваши пользователи будут получать запросы на авторизацию или экраны входа в Chrome, если они не вошли в систему, без контекста. В частности, не используйте getAuthToken
в интерактивном режиме при первом запуске приложения.
Примечание. При вызове с обратным вызовом вместо возврата объекта эта функция будет возвращать два свойства как отдельные аргументы, передаваемые в обратный вызов.
Параметры
- подробности
TokenDetails необязательно
Варианты токенов.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: GetAuthTokenResult) => void
- результатХром 105+
Возврат
Обещание < GetAuthTokenResult >
Хром 105+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
Получает адрес электронной почты и запутанный идентификатор gaia пользователя, вошедшего в профиль.
Требуется разрешение манифеста identity.email
. В противном случае возвращает пустой результат.
Этот API отличается отidentity.getAccounts по двум причинам. Возвращенная информация доступна в автономном режиме и применима только к основной учетной записи профиля.
Параметры
- подробности
Подробности профиля необязательно
Хром 84+Параметры профиля.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(userInfo: ProfileUserInfo) => void
- информация о пользователе
Возврат
Обещание < ProfileUserInfo >
Хром 106+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
Создает URL-адрес перенаправления, который будет использоваться в launchWebAuthFlow
.
Сгенерированные URL-адреса соответствуют шаблону https://<app-id>.chromiumapp.org/*
.
Параметры
- путь
строка необязательна
Путь, добавленный в конец сгенерированного URL-адреса.
Возврат
нить
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Запускает поток аутентификации по указанному URL-адресу.
Этот метод включает потоки аутентификации с поставщиками удостоверений, не принадлежащими Google, путем запуска веб-представления и перехода к первому URL-адресу в потоке аутентификации поставщика. Когда провайдер перенаправляет на URL-адрес, соответствующий шаблону https://<app-id>.chromiumapp.org/*
, окно закроется, и окончательный URL-адрес перенаправления будет передан в функцию callback
.
Для удобства пользователей важно, чтобы интерактивные потоки аутентификации инициировались пользовательским интерфейсом вашего приложения и объясняли, для чего нужна авторизация. Если этого не сделать, ваши пользователи будут получать запросы на авторизацию без контекста. В частности, не запускайте интерактивный поток аутентификации при первом запуске приложения.
Параметры
- подробности
Параметры потока WebAuth.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(responseUrl?: string) => void
- URL-адрес ответа
строка необязательна
Возврат
Обещание<строка | не определено>
Хром 106+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
Удаляет токен доступа OAuth2 из кэша токенов Identity API.
Если токен доступа окажется недействительным, его следует передать в метод RemoveCachedAuthToken, чтобы удалить его из кэша. Затем приложение может получить новый токен с помощью getAuthToken
.
Параметры
- подробности
Информация о токене.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 106+Промисы поддерживаются в Манифесте V3 и более поздних версиях, но обратные вызовы предусмотрены для обратной совместимости. Вы не можете использовать оба при одном вызове функции. Промис разрешается с тем же типом, который передается в обратный вызов.
События
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Вызывается при изменении состояния входа для учетной записи в профиле пользователя.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(account: AccountInfo, signedIn: boolean) => void
- авторизован
логическое значение