Сделать поле login в таблице пользователей уникальным

Рейтинг: 1.0000  
На голосовании
Предложил Пользователь 880 13.02.2018 17:24:47

Сделать поле login в таблице пользователей уникальным

Столкнулись с проблемой. Сделали авторизацию на сайте по email адресу, а не по логину.
Зарегали пользователя с логином и мылом test@test.ru
Подключили авторизацию через соцсети. Решили зайти на сайт через ВК, где тоже стоит почта test@test.ru
В результате получили дублирование пользователей как по логину, так и мылу.
Т.е. получили два абсолютно одинаковых пользователя в системе, разные у них только ID
Получается ни на уровне кода, ни на уровне БД не проверяется должным образом уникальность пользователей по полям login и email. Пришлось решать проблему костылями.


Как ни странно в битриксе такое за ошибку не считают:
"Такое может быть и это не является ошибкой. Уникальность проверяется только для внутренних пользователей сайта, которыми не являются пользователи, авторизованные через соц. сети. "

Рейтинг: 0  
Пользователь 274166 13.02.2018 19:12:40
Ну тут немного сложнее... битрикс может не проверять уникальность email, а ещё он может не перепроверять валидность почты...

НО возможно следует добавить проверку уникальности email даже при авторизации через email
Рейтинг: 0  
Пользователь 880 14.02.2018 11:12:15
С email ещё ладно, там же специальная настройка есть в главном модуле для проверки email на уникальность (которая в этом случае тоже не работает). Но главное уникальность по логину не работает! И это очень плохо
Рейтинг: 0  
Пользователь 880 14.02.2018 11:12:35
С email ещё ладно, там же специальная настройка есть в главном модуле для проверки email на уникальность (которая в этом случае тоже не работает). Но главное уникальность по логину не работает! И это очень плохо