У меня есть веб-приложение, которое в настоящее время использует OAuth2 для аутентификации пользователей с использованием их учетных записей Google.Процесс довольно стандартный: пользователь входит в Google, веб-приложение получает обратный вызов, получает идентификационные данные пользователя и сохраняет его в сеансе.
Теперь мне нужно создать сопутствующее расширение Chrome.Это расширение должно получить доступ к веб-приложению, поэтому оно должно пройти аутентификацию в этом приложении.Я настроил свое расширение, используя официальную документацию , но во время экспериментов я понял, что это не то, что мне нужно.Поскольку он использует неявный поток OAuth2 , он не возвращает токен, который может быть проверен на стороне сервера.Этот поток подходит только для использования API Google на стороне клиента, что не является моим вариантом использования.Эта документация (и почти все остальное, что я нашел в Интернете) посвящена двум возможным случаям:
- Мы хотим получить доступ к API Google на стороне расширения (
chrome.identity.getAuthToken()
). - Мы хотим аутентифицироваться с использованием альтернативного сервиса OAuth2 (
chrome.identity.launchWebAuthFlow()
).
Однако в моем случае я хотел бы аутентифицировать пользователей с использованием аккаунтов Google, но обрабатывать токен на стороне сервера.моего веб-приложения.Я мог бы использовать вариант 2 здесь, но мне просто «не кажется правильным» создавать собственную «службу аутентификации не от Google», которая является просто оберткой над сервисом аутентификации Google, только для возможности аутентификации на стороне сервера..
Действительно ли вариант 2 - единственный путь или есть какой-то более простой способ?
Я также видел, как кто-то рекомендовал использовать конечную точку https://www.googleapis.com/oauth2/v3/tokeninfo для проверки токена, ноМне трудно убедиться, что это действительно "официальный" и безопасный способ сделать это.