Я успешно реализовал вход через Google в свое веб-приложение, используя OAuth 2.0 для клиентских веб-приложений. а>. Для большинства нужд мне просто нужно, чтобы пользователь один раз вошел в мое приложение, и я передаю id_token обратно на свой сервер для его аутентификации и возвращаю токен JWT на внешний интерфейс в случае успеха. Пользователю не нужно входить в систему каждый раз, когда он посещает страницу, сохраняя этот токен JWT в браузере.
Теперь я хочу добавить в свое приложение некоторые дополнительные возможности, которые требуют от меня действий от имени пользователя, поэтому мне нужно поэтапно запрашивать дополнительные области действия. Думаю, я разбираюсь в этом аспекте.
На стороне клиента я получаю согласие на использование API Google от имени пользователя, а затем использую возвращаемый токен Bearer, чтобы сделать запрос к этому API, а затем получаю объект от Google.
Теперь я хочу передать этот объект на свой сервер (мой внутренний сервер), чтобы сохранить некоторую информацию в моей базе данных, связанную с пользователем, вошедшим в мою систему. Как мне аутентифицировать на моем сервере, что объект, который я получил от Google через прокси через браузер, на самом деле принадлежит пользователю, который передает его на мой сервер.
Что может помешать кому-то использовать cURL со своим действительным токеном JWT на моем сервере и передать какой-либо произвольно созданный объект Google, созданный им самим. Я не вижу ничего в объекте ответа Google, что я мог бы проверить его подлинность на моем сервере (как я могу с id_token, который я получаю от их успешного входа в систему, как описано здесь). Возможно, в объекте есть поле «под» (которое, я думаю, является понятием личности Google), которое, по крайней мере, позволяет мне узнать, что он принадлежит пользователю Google, если я могу доверять подлинности объекта в первую очередь.
Может ли кто-нибудь исправить меня и дать мне достаточно интуитивную ментальную модель, чтобы организовать мои мысли, и сказать мне, не ошибаюсь ли я в своих опасениях или подхожу к этому с совершенно неправильной точки зрения?