Хотите изменить логин laravel по умолчанию, чтобы проверить, проверен ли пользователь

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

У меня есть поле статуса в базе данных, в котором будет храниться пользователь, проверен или нет, сохраняя 0/1. Теперь при запросе на вход я должен проверить электронную почту, пароль, а также код состояния, равный 1. В случае проверки пользователь будет перенаправлен на панель управления, в противном случае перенаправить на вход с сообщением об ошибке.

Я выполнил все действия по проверке электронной почты.

Пожалуйста, дайте мне знать, какие материалы вы хотите.


person Pranav Mandlik    schedule 15.03.2018    source источник
comment
сделать проверку на контроллере входа в систему   -  person Sohel0415    schedule 15.03.2018
comment
можем ли мы изменить промежуточное ПО redirectIfAuthenticated?   -  person Pranav Mandlik    schedule 15.03.2018
comment
не в промежуточном программном обеспечении, в методе вашего контроллера, посмотрите здесь laravel.com/docs/5.6/authentication # аутентификация-пользователи   -  person Sohel0415    schedule 15.03.2018
comment
Он должен быть в контроллере входа в систему, как сказал @ Sohel0415, проверьте свой метод контроллера   -  person Prabaharan Rajendran    schedule 15.03.2018


Ответы (2)


Обновите свой LoginController

нужно написать следующую функцию там

protected function authenticated($request, $user){

    if(!$user->is_active){
        //logic here 

    }
}

В приведенном выше примере is_active - это атрибут вашей таблицы, в котором у вас есть статус пользователя ... !!

person Ramzan Mahmood    schedule 15.03.2018
comment
@PrabaharanRajendran рад, если это действительно помогло ___ !! - person Ramzan Mahmood; 15.03.2018
comment
@Pranav Mandlik Вы должны принять это, если это было полезно, или, если не дайте мне знать об этом, я могу сделать это лучше - person Ramzan Mahmood; 15.03.2018
comment
я реализовал как - person Pranav Mandlik; 15.03.2018
comment
защищенная функция аутентифицирована ($ request, $ user) {if (Auth :: user () - ›status == 0) {// здесь логика return redirect (route ('login')); } else {возврат перенаправления (маршрут ('домой')); }} - person Pranav Mandlik; 15.03.2018
comment
Лучше использовать $ user- ›status == 0 из вышеуказанного условия. - person Ramzan Mahmood; 15.03.2018
comment
у меня только один вопрос - person Pranav Mandlik; 15.03.2018
comment
в лезвии мы пишем как / @ if ($ errors- ›has ('email'))‹ span class = invalid-feedback ›‹strong› {{$ errors-› first ('email')}} ‹/strong› ‹ / span ›/ @ endif - person Pranav Mandlik; 15.03.2018
comment
Я хочу установить это $ errors в контроллере, как это установить? - person Pranav Mandlik; 15.03.2018
comment
извините, вы можете объяснить свой вопрос? - person Ramzan Mahmood; 15.03.2018
comment
В этом решении is_active проверяется только после того, как пользователь уже аутентифицирован. Таким образом, пользователь должен выйти из системы, если он неактивен, чтобы это работало должным образом. Поправьте меня если я ошибаюсь. - person sykez; 15.03.2018

Существует более элегантное решение для этого, предоставляемое BrokenBinary, которое проверяет, активна ли учетная запись во время аутентификации, и возвращает пользовательское сообщение об ошибке, если учетная запись неактивна.

person sykez    schedule 15.03.2018
comment
Спасибо, Сайкс не может проголосовать сейчас, потому что достигнут лимит, сделаю это завтра - person Pranav Mandlik; 15.03.2018
comment
@PranavMandlik Классно. Чтобы разобраться в этом решении :) Ура - person sykez; 15.03.2018