Аутентификация пользователя с помощью Google

Мне трудно думать о том, как аутентифицировать пользователя в моем REST-сервисе. Я планирую использовать Google Sign-in (на Android, а именно). Я не могу понять, как аутентифицировать пользователей на моем сервере. Я не хочу иметь никаких разрешений (кроме проверки личности пользователя), все, что я хочу сделать, - это когда я получаю запрос, проверяю, что пользователь является тем, кем он (или она) говорит, что он является.

Насколько я понимаю, пользователь войдет в систему, получит какой-то токен от Google, а затем отправит этот токен вместе со своим запросом на мой сервер, который я буду использовать для проверки его личности. Однако из того, что я прочитал, пользователь будет кодировать свои запросы в JWT (веб-токен json), который я затем буду использовать для проверки их личности, даже не обращаясь напрямую к серверу Google. Я правильно понял?

В документации Google говорится

Если вам не требуется автономный доступ, вы можете получить токен доступа и отправить его на свой сервер через безопасное соединение. Вы можете получить токен доступа напрямую с помощью GoogleAuthUtil.getToken(), указав области без идентификатора клиента OAuth 2.0 вашего сервера.

Но это не говорит о том, что сервер должен делать с токеном.

1 ответ

Решение

У вас есть приложение для Android, которое позволяет пользователю войти в систему через Google+ Sign-In, а затем это приложение для Android будет вызывать ваш REST API. То, что вы хотите, это как ваш сервис аутентифицирует этот запрос. Этот Android-клиент отправит запрос к вашему сервису с токеном, и вам необходимо проверить этот токен для аутентификации. Правильно ли мое понимание?

Если это так, вам нужно проверить токен, отправленный на ваш сервис. Упомянутая вами ссылка предназначена для вызовов API Google, в вашем случае; это ваш собственный вызов API сервиса. Что касается Android, просто перейдите по ссылке, в сервисной части вы можете использовать проверку TokenInfo для аутентификации пользователей.

Другие вопросы по тегам