Домой WordPress WordPress: Вопросы и ответы Не подтвержденный пользователь может войти в ЛК если вводит email место логина, как отключить доступ?
19ответ(ов) в теме
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
1
10:57

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

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
2
11:26

Нашел причину файл *wp-contentpluginswp-recallfunctionsauthorize.php
Строка:

 if ( $user = get_user_by('login', $login) ){
        if(rcl_is_user_role($user->ID, 'need-confirm')){
            $wp_errors->add( 'rcl_login_confirm', __('Ваша учетная запись не была активирована. Пожалуйста, подтвердите свой e-mail перейдя по ссылке в письме.
Если Вы не получили письмо, содержащее ссылку для активации, просим Вас запросить письмо еще раз, используя эту ссылку.','wp-recall') );
            return $wp_errors;
        }
    } 

В данном правиле необходимо реализовать проверку не только по логину но и по Email, как это сделать правильно?

1
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
3
11:52

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

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
4
12:18

Пользователь не должен вводить свой эмаил, но теоретически может ввести. После чего будет автоматически перемещен в свой ЛК, после чего ему не обязательно подтверждать свою почту а следовательно он может начать спамить на сайте.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
5
12:21

dydaevskiy сказал(а)

теоретически может ввести

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

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
6
12:28

Андрей, я просмотрел каждый профиль неподтвержденных пользователей, в поле ник указана эл. почта. Так как на сайте реализована связка ulogin+WP-Recall. Я так понимаю что ulogin каким-то образом влияет на добавление почты в поле профиля "ник.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
7
12:31

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

1
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
8
12:35

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

1
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
9
12:38

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

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
10
12:58

Андрей CS сказал(а)

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

Андрей, email почта не указана в качестве логина, но не подтвержденный пользователь все равно может войти в ЛК. Для теста зарегистрировался на Вашем сайте, и вошел в ЛК введя место логина почту. Вот проверьте сами.
ПС. Мы же сейчас говорим о не подтвержденных пользователях, разве пользователь может попадать в ЛК если он не подтвердил почту пускай он даже ввел место логина почту?

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
11
14:11

я не понял, что я должен проверять? Ссылку на аккаунт дайте о котором идет речь.

0
wedweeww
Гость
12
14:13

Андрей CS сказал(а)

я не понял, что я должен проверять? Ссылку на аккаунт дайте о котором идет речь.

Ссылка на аккаунт

Вы не можете просматривать опубликованные ссылки

под данным аккаунтом я вошел в ЛК введя место логина почту. И до сих пор её не подтвердил.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
13
14:22

Теперь вижу проблему, можно было описать все это более корректно еще в первом сообщении.
Описывайте пошагово, как именно данную проблему можно повторить.

2
wedweeww
Гость
14
14:25

Андрей CS сказал(а)

Теперь вижу проблему, можно было описать все это более корректно еще в первом сообщении.
Описывайте пошагово, как именно данную проблему можно повторить.

зарегистрируйте новый аккаунт на сайте, далее войдите в ЛК используя адрес почты и пароль.

0
wedweeww
Гость
15
14:27

Андрей CS сказал(а)

Теперь вижу проблему, можно было описать все это более корректно еще в первом сообщении.
Описывайте пошагово, как именно данную проблему можно повторить.

Андрей я с уважением отношусь к Вам, и Вашим трудам. Но не пойму что именно не ясно из моего первого сообщения?
В прочем уже не важно.

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
16
16:27

Разобрался, все оказалось очень просто.
В файл: *wp-contentpluginswp-recallfunctionsauthorize.php

Перед кодом:

 if ( $user = get_user_by('login', $login) ){
        if(rcl_is_user_role($user->ID, 'need-confirm')){
            $wp_errors->add( 'rcl_login_confirm', __('Ваша учетная запись не была активирована. Пожалуйста, подтвердите свой e-mail перейдя по ссылке в письме.
Если Вы не получили письмо, содержащее ссылку для активации, просим Вас запросить письмо еще раз, используя эту ссылку.','wp-recall') );
            return $wp_errors;
        }
    }

Данный текст:

Ваша учетная запись не была активирована. Пожалуйста, подтвердите свой e-mail перейдя по ссылке в письме.
Если Вы не получили письмо, содержащее ссылку для активации, просим Вас запросить письмо еще раз, используя эту ссылку.

У меня свой.

Ввести:

/* Если пользователь ввел место логина почту и он не подтвержден не впускать в ЛК  */
			if ( $user = get_user_by('email', $login) ){
				
				if (rcl_is_user_role ($user->ID, 'need-confirm') )
				
				{
					$wp_errors->add( 'rcl_login_confirm', __('Не пытайся войти введя мыло !!!','wp-recall') );
					return $wp_errors;
				}
			}

	/* END */

Естественно текст : "Не пытайся войти введя мыло !!!" меняем на свой 🙂

1
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
17
15:34

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

remove_filter( 'authenticate', 'wp_authenticate_email_password',     20 );

2
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
18
17:21

Андрей CS сказал(а)

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

remove_filter( 'authenticate', 'wp_authenticate_email_password',     20 );

Андрей а в таком случае авторизация по Email будет не осуществима даже в случае если пользователь активировал уч. зап.?

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
19
18:26

в этом случае, да
но если вам требуется авторизация по емейлу, то обновляйте плагин до версии 15.5.7, там внесены необходимые правки в процесс авторизации.

0
Тема закрыта. Публикация новых сообщений запрещена.