首页 文章

Laravel 4身份验证无效

提问于
浏览
9

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

我认为可能是因为使用 email 作为登录字段而不是 username ,但我看不到任何设置 . This question暗示你可以为 config/auth.php 添加一个选项,但它不起作用 . This question说使用 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
});

3 回答

  • 6

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

    getAuthIdentifier()getAuthPassword() 方法必须包含在用户模型中以进行身份验证!

  • 11

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

    “php artisan key:generate”

  • 1

    有同样的问题,让我流汗数小时 . 明确检查您的 User.php 型号并确保您没有 overwritten 默认型号 . 谢谢杰森!

相关问题