Если вы хотите, чтобы ваши пользователи сайта, чтобы иметь возможность войти в систему с Facebook Connect, аккаунт Google, и т.д., как вы проектируете вашу базу данных, так что все они интегрированы?
Работа с несколькими системами входа (Facebook Connect, учетная запись Google, и другие)
Я предлагаю использовать таблицу учетных записей для хранения ваших локальных данных учетной записи, которые затем будут связанными с таблицей AthenticationMethods или таблицей учетных данных, где будет проводить связанные внешние данные для проверки подлинности. Это позволяет ваш сайт и все его сложности, связаны с счетов и ваш процесс Войти в хорошо абстрактные различные формы аутентификации, которые вы можете поддержать. Учитывая, что каждый метод аутентификации может иметь различные уровни сложности, я предлагаю смотреть на различных API, и перекрестные ссылки их все, чтобы найти общие черты. Более важно, чтобы вы хотите, чтобы определить, где они отличаются, так что таблица вы учетные данные могут обрабатывать различные биты данных, которые каждый API может requrie. Не забудьте включить OpenID!
Я использую два поля в моей локальной учетной записи пользователя или таблице. Одна из них называется "externalSystemId" (TINYINT), а другой "ExternalId" (DOUBLE). У меня есть некоторые константы коды, которые определяют различные externalSystemId значения, то есть. EXTERNAL_SYSTEM_FACEBOOK = 1, EXTERNAL_SYSTEM_OPENID = 2, и т.д. ExternalId, конечно, идентификатор пользователя из этой системы.
При обработке объекта пользователя в моем коде, я могу легко определить, какую систему пользователь из, и загрузить соответствующие механизмы кода аутентификации или отобразить то, что это система, целесообразно, на основе externalSystemId.
Обратите внимание, что вы можете использовать таблицу базы данных для хранения записей внешних систем, а не константы коды, в зависимости от того, сколько вы собираетесь иметь дело с, и вам нужна куча дополнительных сведений о системе ли.
Вы уверены, что хотите сохранить другую информацию, чем «логин»: «пароль»? Я бы рекомендовал вам, что у вас есть перечисление для экономии, которая войти в систему пользователь выходит.













