Всем привет! Подскажите, пожалуйста, как правильно сделать авторизацию по email вместо логина? Увы, простым исправлением запроса Код (PHP): 'SELECT `id`, `password`, `gid` FROM `#__users` WHERE username='. $db->Quote( $credentials['username'] ) на Код (PHP): 'SELECT `id`, `password`, `gid` FROM `#__users` WHERE email='. $db->Quote( $credentials['username'] ). ' LIMIT 1' отделаться не получилось - "Такой e-mail уже зарегистрирован. Если Вы забыли пароль, нажмите на Забыли пароль и Вам будет выслан новый пароль." В какую сторону копать?
регистрация по LOGIN ни чем не отличается от регистрации по E-MAIL просто называются по поля ввода по разному и после нажатия на кнопку ВОЙТИ еще идёт проверка на правильность написания E-MAIL, а так создаётся всё тот же ХЕШ и записывается всё туда же
смысл авторизации по LOGIN: берется слово и сравнивается тем которое забито в БД смысл авторизации по E-MAIL: берется e-mail, проверяется на правильность написания, если проверка прошла то сравнивается тем которое забито в БД
Так я и сделал. Получаю "Такой e-mail уже зарегистрирован. Если Вы забыли пароль, нажмите на Забыли пароль и Вам будет выслан новый пароль."
я то понимаю просто вы пытаетесь записать имя пользователя в поле e-mail, а я говорил о том что "мыло должно быть и в поле "username" и в поле "email" тогда у вас всё заработает
А, кажется я вас понял... Вы имеет в виду регистрацию. А я имею в виду именно авторизацию. То есть, пользователи, которые уже зарегистрировались с логином, должны будут тоже входить по е-мэйлу. Нужно сравнивать именно поле email из таблицы пользователей, вот в чем штука((
Мой Вам совет, дабы не вдаваться "Во все тяжкие" джумлы рекомендую при регистрации подсовывать в поле "username" емайл клиента и будет вам счастье. Ну если Вы, все таки, решили "привязаться" к полю email, то вам придется основательно покопаться в ядре и изменить алгоритмы хеширования паролей пользователей, т.к. хеш создается на основе трех переменных - username + password + secret_key. Удачи )
я говорил тоже самое но видимо немного не так объяснил, а хеш как ни странно создаётся только из пароля, просто сам буквально пару дней назад ради интереса ковырялся в USER.PHP там что то я не увидел ссылок на username при хешировании