2012-06-05 2 views
1

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

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

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

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

Есть ли какие-либо другие методы, которые кто-либо может предложить для решения этой проблемы?


Edit: По просьбе некоторых из ответов я уточню пример:

Допустим, у меня есть пользователь с именем Джо Пупкин, который является членом на моем сайте. Он не является членом Twitter или Facebook. Его псевдоним на моем сайте - JoeBloggs.

Затем появляется еще один Joe Bloggs и хочет войти в свою учетную запись Twitter. Его имя Twitter - JoeBloggs, поэтому, когда он подписывается в Twitter, моя система пытается автоматически установить его псевдоним на JoeBloggs. Однако этот псевдоним уже существует. Какова нормальная или лучшая практика в случаях, когда псевдонимы подобны этому перекрытию? Единственное, что я могу придумать, - предложить пользователю указать другой и уникальный псевдоним (только для отображения на моем сайте).

Причина, по которой я спрашиваю, заключается в том, что это должно быть распространенной проблемой для сайтов, которые позволяют вам входить в систему через Facebook, Twitter, Yahoo - должно быть перекрытие имен, возвращаемых с указанных веб-сайтов, поэтому я задавался вопросом, процесс есть.

ответ

0

Не могли бы вы использовать API Twitter, чтобы подтвердить, что они действительно являются идентификатором Twitter, который они говорят, и если нет учетной записи Twitter, разрешите им другие способы аутентификации (Google+, Facebook, LinkedIn, имя и пароль старой школы)? Разрешить пользователям входить в систему с помощью идентификатора Twitter, который у них нет, кажется, что он просит мир обидеть.

+0

Я не думаю, что вы понимаете мой вопрос. У меня уже есть пользователи, большая база данных пользователей, у всех которых есть псевдонимы. Я подумываю о том, чтобы использовать Twitter как ДОПОЛНИТЕЛЬНЫЙ вариант для новых пользователей для регистрации. Когда они подписываются с помощью Twitter, я хочу автоматически назначить их псевдоним их идентификатору Twitter. Проблема возникает, если пользователь уже имеет этот псевдоним. Ничто из того, что я сказал, не означает, что пользователи могут войти в систему через Twitter, если они не владеют им. – Oriental

+0

У меня очень похожая ситуация - социально интегрированный сайт, где пользователи могут входить в систему с помощью FB, Twitter, LinkedIn или старомодным именем пользователя/паролем, а затем позже могут подключаться к одной или нескольким из этих учетных записей. Если вы можете опубликовать данные о том, как выглядит таблица ваших пользователей, я думаю, что я мог бы быть полезен. – Innominate

0

Возможно, вы могли бы попробовать изменить базу данных - получите поле типа «nickOrigin», разрешите использовать такие значения, как «[yourSite]», «твиттер» и т. Д., И разрешать только новые записи, если нет записи с тем же nick И nickOrigin существует. Выполните запрос, чтобы изменить существующих пользователей, чтобы иметь nickOrigin [yourSite], и ​​все должно быть обратно совместимо или, по крайней мере, я их себе представляю :)

Смежные вопросы