Я использую mongo db для хранения пользовательских данных и их паролей. У меня есть два способа создать учетную запись:
username и password иfacebook.Теперь, когда у меня есть обычная регистрация, password и username должны потребоваться, но при использовании входа в систему facebook их нет, поэтому мне интересно, как мне теперь разработать схему для модели users, чтобы включить оба случая?
Самый очевидный способ - это две разные модели: users_facebook и users_regular, но правильно ли это? Почему или почему нет? Это также может быть users_auth (данные аутентификации только для пользователей, которые зарегистрировались вручную) и users_data (данные обоих типов пользователей). Также есть что-то вроде MongoDB Facebook Stitch, которое, кажется, каким-то образом используется для этой цели, хотя я не понимаю, что это такое. Я новичок в базах данных и не уверен, что мне нужно. Проблема кажется довольно тривиальной.
Но тогда нет смысла использовать логин в фейсбуке
Я понимаю, если вы ориентируетесь только на пользователей facebook, тогда зачем вам использовать регулярную регистрацию? Я имею в виду, что приложение не должно сильно полагаться на сторонние службы, особенно в случае аутентификации. Если у facebook был сбой сервера в течение длительного периода времени, или по какой-то причине ваше приложение facebook не работает, или было заблокировано, ваши пользователи никогда не смогут войти в ваше приложение. Возможно, вы реализуете очень плохой путь пользователя.
В настоящее время это обычная практика: разрешить пользователю либо войти в систему через facebook, либо разрешить регулярную регистрацию. Не у всех есть фейсбук, поэтому я не могу полагаться только на него. С другой стороны, некоторые пользователи, у которых есть учетная запись Facebook, смогут зарегистрироваться очень быстро: это хорошо, потому что многие пользователи просто отвлекаются от использования службы, требующей заполнения полей.
Я понимаю, насколько легко пользователям войти в систему с помощью кнопок социальных сетей. Но все же вы также должны отдавать приоритет регулярной регистрации. Для процесса входа в социальную сеть позволяет пользователю вводить пароль, остальные поля формы могут быть автоматически заполнены с помощью API социальной сети.

Я бы посоветовал вам разрешить пользователям facebook вернуться на страницу регистрации и ввести пароль. Использование стороннего api для хранения информации о пользователе - не лучшая идея. Вы можете извлечь письмо из fb api. Таким образом, если вы решите добавить еще один API аутентификации, вы сможете это сделать с легкостью.