Авторизация входа для существующего пользователя не работает правильно для существующего и несуществующего пользователя в laravel - PullRequest
0 голосов
/ 23 октября 2018

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

Код контроллера:

public function login_student(Request $request){
$rules = array(
        'email' => 'required|email',
        'password' => 'required'
        );
         $validator = Validator::make(Input::all() , $rules);
          if ($validator->fails()) {
             return Redirect::to('log')->withErrors($validator)->withInput(Input::except('password'));  
          }else{
          $email = Input::get('email');
          $pass = md5($request->input['password']);
          if (Auth::attempt(['email' => $request->input('email'),'password' => $pass])) {
              echo "Welcome User";
              exit;
                } 
                else {
                echo "Please enter correct details to login";
                  exit;
             }
             }
       }

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Вы пытались использовать Auth :: guard ()?

if (Auth::guard()->attempt(['email' => $request->email, 'password' => $request->password])) {

/////////////////
}
0 голосов
/ 23 октября 2018

попробуйте с этим

$user = \App\Models\User::where([
        'email' => $request->email,
        'password' => md5($request->password)
    ])->first();

if ($user) {
   echo "Welcome User";
   exit;
} 
else{
   echo "Please enter correct details to login";
   exit;
}
0 голосов
/ 23 октября 2018

Поскольку вы использовали библиотеку Auth, служба Auth будет обрабатывать шифрование паролей.

Поэтому вы должны заменить следующую строку:

$pass = md5($request->input['password']);

Кому:

$pass = $request->input('password');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...