2016-11-27 5 views
-1

Прошло 30 минут, чтобы прочитать все сообщения о stackoverflow об этом. Не удается найти решение. Это мой код:Почему laravel Auth :: попытка не работает

public function PostLogIn(Request $request) 
    { 

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

       return redirect()->route('dashboard'); 
      } 
     $status = 'Incorrect details'; 
     return view('login')->with('status',$status); 

    } 

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

public function getAuthPassword() { 
    return $this->UserEmail; 
} 

Пытался тоже не работают. From отправляет данные правильно, но мой auth по-прежнему не работает по какой-либо причине.

(Я создал пост 1,5 часа назад, хотел изменить, но удален случайно, извините за парня, который ответил :))

+0

Что '$ request-> email' и '$ request-> password' содержат? У них есть то, что вы ожидаете от них? –

+0

Они содержат данные из ввода формы. Да, я сделал dd() в $ request, и все в порядке! – Michael

+0

Попробуйте удалить функцию 'getAuthPassword'. –

ответ

0

Я могу комментировать, но если это не поможет, я буду удалять Это.

  1. Убедитесь, что $request->email приносит ничего (сообщение), dd($request->email);

  2. То же самое для $request->password

  3. Проверьте $request->password производит тот же хеш, что один в БД:

    if (Hash::check($request->password, $hashInDB)) { 
        // The passwords match... 
    } 
    
  4. Наконец (актуально, что это должно быть сделано в первую очередь: P) проверьте, почта на $request->email такой же, как тот, который вы сохранили в БД

PS: не уверен getAuthPassword в модели, вы должны попытаться сделать попытку без него