2016-03-17 8 views
0

У меня есть веб-приложение, которое позволяет пользователю регистрироваться через обычную HTML-форму или через Facebook или Google. Вопрос в том, какой пароль следует хранить в базе данных, потому что даже если поставщик OAuth дает мне соответствующую информацию, такую ​​как электронная почта, имя, возраст и т. Д. Это Очевидно, что не дает вам пароля. Каким будет правильный пароль для хранения в базе данных? У меня есть несколько идей:Какой пароль хранить в базе данных, когда пользователь регистрируется через OAuth2 (например: google или facebook)?

  1. сгенерирует случайный один и отправить его по электронной почте (не очень безопасный)
  2. Добавить пустую строку. (Они никогда не смогут войти в систему с использованием пароля, потому что при принятии запроса на вход в систему я проверяю, что этот пароль должен содержать более 5 символов, это звучит как очень хакерский способ сделать это)
  3. Обязательно введите пароль после регистрируясь через поставщика OAuth.

Любые мысли?

ответ

0

Это зависит полностью от вашего приложения. Будет ли аутентификация запущена специально через стороннюю сторону - то есть googleAuth?

Если это так, нет необходимости хранить пароль. Если вы также хотите обработать аутентификацию в своем приложении, дайте пользователю возможность подписаться на google/facebook или с вашим приложением.

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

+0

Они могут либо аутентифицировать третью сторону, либо использовать собственную систему аутентификации приложений. Таким образом, вы можете войти в систему через Google или логин: пароль (такая же учетная запись) –

+0

Это принудительно - так, например, если бы я вступил в систему с Google, вы бы также хотели, чтобы я создал учетную запись приложения с именем пользователя и паролем? – jakehallas

+0

Нет, я просто хочу, чтобы у них были оба варианта. Представьте себе, что я использую компьютер моего друга, я обычно вхожу в систему через Google, но компьютер моего друга заносится в его аккаунт. В этом случае я бы выполнил вход по электронной почте + пароль вместо того, чтобы обойти все проблемы logginf из Google и снова войти в систему, чтобы я мог войти. –