Как отозвать токен Identity API (Chrome расширение) - PullRequest
0 голосов
/ 14 июля 2020

Я хотел бы добавить Войти с помощью Google и кнопку Выход в свое расширение Chrome.

One technique that uses chrome.identity.getAuthToken for Sign In is described in это руководство . Отлично работает! При нажатии на кнопку отображается всплывающее окно для аутентификации и авторизации.

Но как мне реализовать кнопку Выход ?

Я пытался использовать removeCachedAuthToken в обработчике по щелчку моей кнопки Выход . При этом функция входа не работает должным образом. После, когда я снова нажал кнопку Войти , я получил новый токен напрямую, без всплывающего окна с просьбой подтвердить подлинность и авторизацию моего расширения. Я хочу, чтобы пользователи могли изменить свою учетную запись, выйдя из нее. С этой техникой это невозможно. Как мне реализовать функцию выхода, чтобы это учесть?

1 Ответ

0 голосов
/ 26 августа 2020

Меня это тоже беспокоило, пока я не понял, что меня запутала разница между входом в систему и авторизацией, выходом из системы и отзывом доступа.

Во-первых, давайте не будем увлекаться название кнопки. Вы можете называть это Выход , но на самом деле вы хотите, чтобы пользователи отозвали доступ к своей учетной записи Google, а затем авторизовались и предоставили доступ другой учетной записи.

Если вы используете removeCacheAuthToken, затем снова авторизуетесь и не видите всплывающего окна, это означает, что расширение все еще имеет доступ к определенным API. Чтобы проверить, каким приложениям был предоставлен доступ к каким сервисам Google, от go до настройки разрешений и посмотрите.

Есть несколько способов отозвать доступ:

  1. Go на chrome://identity-internals/ и удалите нужные токены. Затем нажмите кнопку «Авторизовать», и вы должны увидеть всплывающее окно с выбором учетных записей Google для предоставления доступа.

Конечно, этот метод предназначен только для тестирования. Ваши конечные пользователи не увидят токен доступа для вашего расширения, если они посетят эту страницу.

Когда пользователь нажимает кнопку Отменить доступ или любое другое имя, которое вы называете, отобразить всплывающее окно, которое сообщает ему go на страницу настроек разрешений , чтобы вручную отменить доступ.

Создайте форму на текущей веб-странице, добавьте токен доступа в форму и отправьте в конечную точку https://oauth2.googleapis.com/revoke.

По моему опыту, метод 3 кажется идеальным решением, но для меня он оказался хитом. Иногда я получаю ошибку неверного или просроченного токена, и устранять ее не стоит. Я бы предпочел метод для душевного спокойствия.

...