我正在使用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通过用户名和密码进行身份验证。有可能吗?
答案 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'
]);