Я использую Express Nodejs backend + настроил интерфейс React и попытался реализовать функцию «Зарегистрироваться / Войти в Google», но я не понимаю, что хранить в базе данных после аутентификации пользователя , В обычном режиме регистрации с использованием электронной почты я отправляю адрес электронной почты + пароль бэкэнду при регистрации и проверяю, совпадают ли адрес электронной почты и пароль при входе пользователя в систему.
Однако я не знаю, что хранить в БД, если один зарегистрирован в Google. Я уже реализовал часть google auth с google, следуя этому учебнику в интерфейсе, вот мой код:
import * as queryString from 'query-string';
const stringifiedParams = queryString.stringify({
client_id: 'MY_CLIENT_ID'
redirect_uri: 'http://localhost:8000/protected_home',
scope: [
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile'
].join(' '), // space seperated string
response_type: 'code',
access_type: 'offline',
prompt: 'consent'
});
const googleLoginUrl = `https://accounts.google.com/o/oauth2/v2/auth?${stringifiedParams}`;
return (
<a href={googleLoginUrl}>Login with Google</a>
)
Но что дальше? Я успешно прошел процесс аутентификации и перенаправлен обратно на страницу protected_home
. Но это только означает, что этот пользователь является пользователем Google, какую информацию мне следует хранить в бэкэнде, чтобы он указывал, что пользователь зарегистрировал аккаунт в моем бэкэнде с этим аккаунтом Google?
Также, Можно ли переместить логи c выше в бэкэнд? Так как Google перенаправит обратно на мой redirect_uri
, как этот http://localhost:8000/protected_home?code=CODE_IS_HERE
, мне нужно браузер, чтобы извлечь информацию в CODE_IS_HERE
. Так что кажется невозможным переместить логин логина c в бэкэнд, какое-либо решение?