Подтвердить что ты не робот

OAuth (Facebook, Twitter) и базовая таблица пользователей - пользователей

Я хочу, чтобы пользователи заходили на мой сайт, используя свою учетную запись Facebook или Twitter, но если у них нет учетной записи, то зарегистрируйте новую учетную запись и используйте основной логин моего сайта.

Но как выглядит таблица моих пользователей:

Моя идея:

  • id (первичный, автоматический прирост)
  • имя пользователя (в случае oauth login = > ouath_provider + oauth_id, ex: fb_100001557958700)
  • пароль (пароль выбирается пользователем или случайно генерируется в случае oauth)
  • имя (имя для отображения)

Как вы думаете? Или мне нужно иметь 2 таблицы, 1 для основного входа и еще 1 для входа в систему? Но как пользователи будут иметь уникальные идентификаторы?

Заранее благодарим за комментарии.

4b9b3361

Ответ 1

По моему опыту, вы лучше всего сохраняете свои авторизации в одной таблице, а ваши пользовательские данные - в другом.

авторизаций:

network     - Varchar(255)  #Twitter/Facebook/Openid/whatever
network_id  - varchar(255)  #Users id for that social network.
user_id     - int

пользователей:

id (primary, auto increment)
name
password
username

С этой структурой, если вы хотите, чтобы один и тот же пользователь мог войти в систему с Twitter и Facebook в какой-то момент в будущем, это также возможно.

Ответ 2

Вот как выглядит моя таблица пользователей.

  • User_id (первичный, автоматический прирост)
  • oauth_provider (перечисление (нет, твиттер, facebook))
  • oauth_uid
  • имя пользователя
  • пароль
  • и т.д.

Каждый раз, когда пользователь регистрируется через Facebook/Twitter, новая запись вставляется с записью пароля как нулевой.

Я думаю, что это хороший способ сделать это, потому что у вас есть 1 уникальный user_id, который вы можете использовать в своем приложении/базе данных.