6

我正在使用 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 进行身份验证。可能吗?

4

1 回答 1

10

您可以在此处修改此示例

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'
]);
于 2015-07-22T06:30:44.917 回答