如何在Laravel中使用Sentinel登录用户名?

时间:2016-01-29 11:33:02

标签: php laravel authentication sentinel

我在Laravel中使用Sentinel进行用户身份验证。

我已按照this指南使用用户名登录,但它似乎无法正常工作!

我有一个测试路由来测试登录,如下所示:

Route::get('/test-login', function()
{
    Sentinel::authenticate([
        'login'    => 'nvaughan84',
        'password' => 'password',
    ]);

    //check login details
    if($user = Sentinel::check())
    {
        print_r($user);
    }
    else
    {
        echo 'Not Logged';
    }
});

我创建了一个扩展SentinelUser的用户模型,如下所示:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;

class Users extends SentinelUser
{
    protected $fillable = [
    'email',
    'username',
    'password',
    'last_name',
    'first_name',
    'permissions',
];

protected $loginNames = ['username'];

}

我已经更新了我的哨兵配置:

'users' => [

    'model' => 'App\Users',

],

如果我添加&#39;用户名&#39;到Sentinel类中的$ loginNames数组它可以工作但不使用扩展Sentinel类的Users类。

有人可以告诉我,我可能做错了吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

解决了它。

我愚蠢地还是

use Cartalyst\Sentinel\Native\Facades\Sentinel;

位于我的routes.php文件的顶部,因此它使用了这个而不是我的新用户类!