Как сохранить пользователя в базе данных после OAuth с Google Sign In API? - PullRequest
0 голосов
/ 20 мая 2018

Мой вопрос похож на Какие данные я могу сохранить в своей базе данных для проверки пользователя с помощью входа в Google API?

Я правильно создал Google Sign In и получаюОтвет API выглядит следующим образом:

{  
   "iss":"https://accounts.google.com",
   "at_hash":"xxx",
   "aud":"xxx.apps.googleusercontent.com",
   "sub":"xxx",
   "email_verified":true,
   "azp":"xxx.apps.googleusercontent.com",
   "email":"xxx@gmail.com",
   "iat":xxx,
   "exp":xxx
}

Ссылка SO, приведенная выше, говорит о необходимости сохранить подполе, поскольку это уникальный идентификатор.Я могу сохранить электронную почту / саб без проблем.Мой вопрос: как мне разрешить этому пользователю в следующий раз войти в систему с помощью формы электронной почты / пароля, если он решит это сделать, а не OAuth?Полагаю, я мог бы заставить их выполнить вход через OAuth, а затем убедиться, что они вошли в систему, и попросить их создать пароль, но я не знаю, является ли это лучшим способом сделать это.

1 Ответ

0 голосов
/ 21 мая 2018

Параметр "sub" гарантированно уникален только для параметра "iss".Таким образом, комбинация «iss» и «sub» глобально уникальна.

Если вы ДОЛЖНЫ сохранить пароль, вам нужно будет спросить пользователя.Некоторые приложения вводят случайный сложный пароль для каждого пользователя, поскольку для некоторых сред приложений требуется пароль.Это может быть полезно, если они забудут, что использовали Google для входа, чтобы вы проявили должную осмотрительность при назначении временного пароля для пользователя с адресом электронной почты.

Конечно, вы должны учитывать, что адрес электронной почты глобален.уникальный в любой момент времени, но может быть переназначен в некоторых случаях.

...