Как пройти аутентификацию с помощью Sentinel по имени пользователя?
Я использую Sentinel от Cartalyst для аутентификации с помощью 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 ответ
Вы можете изменить этот пример здесь
http://naomiaro.com/2015/07/08/multiple-login-attributes-with-sentinel-and-laravel/
В вашей модели Users вы должны переопределить атрибут $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'
]);