большой сайт, много пользователей, как уникально идентифицировать пользователей - PullRequest
2 голосов
/ 03 марта 2011

Большинство веб-сайтов требуют, чтобы имя пользователя было уникальным.Я заметил, что SO допускает дублирование имен пользователей, что может быть хорошо, если у вас очень большой сайт, такой как SO (что, я думаю, они делают, чтобы избежать имен пользователей, таких как chris123, chris213, chris321, которые начинают выглядеть запутанными).Но допускает ли дублирование имен пользователей, как правило, относительно плохую реализацию?Может быть сбивающим с толку получить 2 ответа от 2 пользователей с одинаковым именем пользователя.

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

Ответы [ 5 ]

2 голосов
/ 03 марта 2011

Хотя наличие разных имен пользователей (обычно используемых для входа в систему) является почти абсолютным требованием, нет никаких причин, по которым для псевдонима дисплея требуется какое-либо требование быть уникальным, поскольку существуют различимые методы идентификации реального пользователя для других пользователей, использующих система. Это довольно распространенная практика среди дискуссионных форумов, поскольку на самом деле существует множество «Джеффа Смита». Например, SO использует репутацию пользователя и ссылается на его профиль в качестве механизмов, позволяющих дифференцировать реальных пользователей. Однако сами логины должны иметь форму уникальности.

В качестве дополнения, чтобы уточнить мой комментарий:

Небо (и ваше воображение) действительно являются пределом уникальной идентификации псевдонима. Вне стандартной ссылки профиля вы можете добавить другие уникальные характеристики (если вы хотите, чтобы псевдоним был относительно безошибочным). В качестве примера некоторых я не видел: используйте уникальные шрифты или цвета при отображении псевдонима ... синий санскрипт Джефф Смит отличается от желтого ариала Джефф Смит (просто пример метода)

1 голос
/ 03 марта 2011

Я полагаю, у вас есть две разные проблемы; Авторизация и персонализация.

Большинство сайтов будут использовать электронную почту для однозначной авторизации кого-либо, поскольку они уже гарантированно будут уникальными. SO использует открытую аутентификацию, что означает, что я давно не указывал «имя пользователя» для аутентификации с ними. Мой OpenID содержит мой адрес электронной почты и мой пароль и обрабатывает часть авторизации для SO.

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

Если вы проверите ссылки для каждого имени профиля, вы увидите число в URL-адресе, и это то, что однозначно идентифицирует вас на сайте и привязывает twitter к вашему адресу электронной почты / имени пользователя для входа в систему под номером 629665. Ссылка на вашу страницу пользователя https://stackoverflow.com/users/629665/twitter

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

1 голос
/ 03 марта 2011

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

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

пример:

chris123 (AZ) - chris123@example.com
chris123 (WA) - chris123.west@example.com
chris321 (AZ) - chris321@example.com
0 голосов
/ 03 марта 2011

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

Нет вопроса, как идентифицировать пользователя. Если вы посмотрите на ссылку linfo пользователя stackoverflow, вы увидите старый добрый автоинкрементный уникальный номер. Нет проблем с этим.

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

0 голосов
/ 03 марта 2011

-> Выбор имени пользователя не является чем-то отличным. -> Может быть, вы можете пойти для электронной почты идентификатор и имя пользователя.

--> best is to Generate a unique ID for every user bro.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...