Вход в систему с помощью Google без входа в Google Библиотека платформы JavaScript для Интернета

#google-signin

Вопрос:

Я хочу добавить «Вход в Google» в качестве альтернативы созданию учетной записи при регистрации на наши услуги.

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

И этот пример был всем, что мне было нужно

https://developers.google.com/identity/sign-in/web

Отлично сработало. Очень похоже на вход в Facebook, который я добавил на прошлой неделе.

Но теперь я читаю, что он не будет поддерживаться после марта 2023 года.

Используя код JS, предназначенный для мусорной корзины, я могу получить полезную информацию об учетной записи, с помощью которой я выполняю вход.

УДОСТОВЕРЕНИЕ личности: 10855600*******690837;Фрэнк;Харт;фрэнк.харт**** * @gmail.com

Параметр, передаваемый функции обратного вызова, имеет метод getBasicProfile (), который выполняет эту работу

профиль var = googleUser.getBasicProfile();

Но, используя новый код, я обнаружил (методом проб и ошибок), что параметр, передаваемый функции обратного вызова, является объектом, который имеет три поля, единственное потенциально полезное, называемое учетными данными, с таким содержимым, как:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjQ2Mjk0OTE3NGYxZWVkZjRmOWY5NDM0ODc3YmU0ODNiMzI0MTQwZjUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYmYiOjE2Mjg4NTQzOTcsImF1ZCI6IjY1MjE0Nzk1NjY0My05aWVmdHN2bmZraDVma2x1NHUxOGg1Ymc3MDA0YjdsOC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsInN1YiI6IjEwODU1NjAwNDY3OTg0NzY5MDgzNyIsImVtYWlsIjoiZnJhbmsuaGFydDA0N0BnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXpwIjoiNjUyMTQ3OTU2NjQzLTlpZWZ0c3ZuZmtoNWZrbHU0dTE4aDViZzcwMDRiN2w4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwibmFtZSI6IkZyYW5rIEhhcnQiLCJwaWN0dXJlIjoiaHR0

Теперь я предполагаю, что я должен отправить эту строку на свой сервер и что-то с ней сделать, возможно, с «секретом клиента», который связан с приложением на developers.google.com. Но я искал большую часть дня и не уверен, что то, что я нашел, необходимо — надеюсь, это не так

https://developers.google.com/identity/sign-in/web/backend-auth

Нужно ли мне теперь стать программистом OAuth2, чтобы просто добавить вход с помощью кнопки Google?

Ответ №1:

Хорошей новостью является то, что вам не нужно изучать OAuth2, вам не нужно следовать руководству по бэкенд-аутентификации, указанному в вашем вопросе. Эта миграция фактически устраняет сложность OAuth2, маркеров доступа и обновления при входе в систему. Да, существует трудность в изучении и понимании нового и отличного способа безопасного обмена профилем пользователя. Надеюсь, преодолев кривую обучения, вы увидите, как это упрощает работу с профилем.

Веб-токены JSON (JWTs) теперь используются для безопасного обмена профилем учетной записи Google.

Эта большая куча текста-учетные данные, это кодировка base-64 и JWT. jwt.io имеет онлайн-декодер JWT, который удобен для тестирования и приятной записи работы с JWTS. После декодирования это просто объект JSON, методы get не требуются, просто доступ к отдельным полям.

Все это говорит о том, что вам нужно решить, должно ли декодирование происходить в браузере пользователя или на вашем внутреннем сервере. Это зависит от того, как вы работаете с профилем и вашей настройкой. Как правило, вы декодируете на своем сервере после перенаправления с помощью data-login_uri в HTML или login_uri в JS.

Существует большое количество доступных библиотек декодирования JWT, поэтому весьма вероятно, что вы сможете добавить библиотеку JWT, декодировать ее, и все вы будете готовы получить доступ к отдельным полям в учетных данных.

Комментарии:

1. ты только что устроил мне выходные, друг!

2. как только пользователь войдет, я расшифрую учетные данные на серверной части, как серверная часть узнает, что пользователь вошел и может получить доступ к ограниченным конечным точкам? Нужно ли мне создавать свой собственный токен доступа и обновления? Спасибо!