Как пройти аутентификацию с помощью 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'
]);
Другие вопросы по тегам