Laravel 4身份验证无效

Dis*_*oat 9 authentication laravel laravel-4

我有一个Laravel 4应用程序,我在其中设置了一个用户.在我的登录路线中,我正在Auth::attempt使用电子邮件和密码进行呼叫,但它始终返回为假.我肯定有正确的密码和数据库中的正确哈希Hash::check返回true.

我认为这可能是由于使用email了登录字段而不是username,但我看不到任何设置.这个问题暗示你可以添加一个选项,config/auth.php但它不起作用.这个问题说要username用作数组键,但后来我得到SQL错误,因为它试图选择数据库中的用户名字段.

我是否需要在User模型中添加一些内容以指定用户名字段?这是我的登录路线:

Route::post('login', function() {

    // data from login form
    $credentials = array(
        'email' => Input::get('email'),
        'password' => Input::get('password')
    );

    $auth = Hash::check(Input::get('password'), Hash::make('mypass'));
    var_dump($auth); // this is TRUE

    // login was good
    $auth = Auth::attempt($credentials);
    var_dump($auth); // this is FALSE
});
Run Code Online (Sandbox Code Playgroud)

Dis*_*oat 11

我发现了这个问题.正如Jason在上面的评论中所建议的那样,我修改了models/User.php文件并删除了一些我没有意识到的功能.

getAuthIdentifier()getAuthPassword()方法必须包括在用户模型进行验证!

  • 他们这样做.该模型还必须实现`UserInterface`和`RemindableInterface`. (3认同)

Nei*_*omb 6

在app/config/app.php中,确保设置了'key'.这让我把头发拉了出来.一切都会工作,密码似乎在数据库中散列,但在设置此密钥并将密码重新哈希到数据库之前,它总是会返回false.

"php artisan key:generate"