如何通过用户名对Sentinel进行身份验证?

时间:2015-03-17 19:58:49

标签: php authentication login sentinel

我正在使用Cartalyst的Sentinel进行PHP身份验证。传统的身份验证方式是使用电子邮件和密码,我们可以在他们的文档中阅读:

$credentials = [
    'email'    => 'john.doe@example.com',
    'password' => 'password',
];

Sentinel::authenticate($credentials);

库提供的默认用户表如下:

id | email | password | permissions |last_login | first_name | created_at | updated_at

我想添加用户名列,并使用Sentinel通过用户名密码进行身份验证。有可能吗?

1 个答案:

答案 0 :(得分:6)

您可以在此处修改此示例

http://naomiaro.com/2015/07/08/multiple-login-attributes-with-sentinel-and-laravel/

在您的用户模型中,您必须覆盖属性$ loginNames,并将用户名添加到属性$ fillable。

use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;

class User extends SentinelUser {

    protected $fillable = [
        'email',
        'username',
        'password',
        'last_name',
        'first_name',
        'permissions',
    ];

    protected $loginNames = ['username'];

}

Sentinel::authenticate([
    'username'    => 'fake',
    'password' => 'password'
]);