Я пытаюсь реализовать неявный поток OAuth2.0 с помощью входа в Google.У меня есть один веб-клиент веб-интерфейса и один API-интерфейс.Мой стек выглядит следующим образом:
- Внешний интерфейс: React
- IDP: Google Sign-In
- Бэкенд (REST API): Flask
После того, как пользователь проходит аутентификацию в Google, веб-интерфейс получает id_token
и access_token
.Мне не требуется доступ к каким-либо данным Google пользователя, поэтому я игнорирую маркер доступа и просто отправляю id_token
JWT на маршрут /login
моего бэкэнда Flask.
Оттуда серверная часть Flask проверяет в Google, что это действительный JWT, я проверяю, совпадает ли заявка hd
с разрешенным доменом, и ... тогда что? После Инструкции по входу в Google , я должен создать нового пользователя или начать новый сеанс.Но как мне это сделать?
Некоторые вопросы, которые у меня сейчас есть:
- Нужно ли бэкенду генерировать свой собственный JWT или токен сеанса (это токен сеанса, другой JWT или что-то еще??) и вернуться к веб-интерфейсу после успешного входа в систему?
- Как обеспечить проверку последующих вызовов из веб-интерфейса на сервер?
- Повторно ли я использую то же самое
id_token
, которое я хранил на внешнем интерфейсе в заголовке авторизации? - Что такое проверка подлинности без сохранения состояния по сравнению с проверкой состояния с помощью JWT?