Laravel Auth::attempt() always false?


Laravel Auth::attempt() always false?

我最近开始学习Laravel(PHP MVC框架),在使用:Auth::try($credentials)对用户进行身份验证方面遇到了很多问题。

我将把我的代码片段放在下面。在我的mySQL数据库中,我有一个记录,其中包含以下键值=>:id=>1,用户名=>'admin',密码=>'admin',created_at=>0000-00-00 00:00:00,updated_at=>00000-00-00 00:00:00

Validator通过,但Auth:尝试总是失败。

如果下面的代码和我的小解释还不够,请告诉我!:-)

Routes.hp:

Route::get('login', 'AuthController@showLogin');
Route::post('login', 'AuthController@postLogin');

AuthController:

public function showLogin(){
    if(Auth::check()){
        //Redirect to their home page
    }
    //Not logged in
    return View::make('auth/login');
}
public function postLogin(){
    $userData = array(
        'username' => Input::get('username'),
        'password' => Input::get('password')
    );
    $reqs = array(
        'username' => 'Required',
        'password' => 'Required'
    );
    $validator = Validator::make($userData, $reqs);
    if($validator->passes() && Auth::attempt($userData)){
        return Redirect::to('home');
    }
    return Redirect::to('login')->withInput(Input::except('password'));
}

我相信attempt()方法会对发送的密码进行散列。由于DB条目的密码是明文形式的"admin",所以这将失败。使用Hash::make($password)保存您的密码;我认为你的问题应该得到解决。