Как использовать имя пользователя для входа с помощью Sentinel в Laravel?

Я использую Sentinel для аутентификации пользователей в Laravel.

Я следовал этому руководству. войти в систему, используя имя пользователя, но, похоже, это не работает!

У меня есть тестовый маршрут для проверки входа в систему, который выглядит следующим образом:

Route::get('/test-login', function()
{
    Sentinel::authenticate([
        'login'    => 'nvaughan84',
        'password' => 'password',
    ]);

    //check login details
    if($user = Sentinel::check())
    {
        print_r($user);
    }
    else
    {
        echo 'Not Logged';
    }
});

Я создал модель Users, которая расширяет SentinelUser следующим образом:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;

class Users extends SentinelUser
{
    protected $fillable = [
    'email',
    'username',
    'password',
    'last_name',
    'first_name',
    'permissions',
];

protected $loginNames = ['username'];

}

И я обновил свою конфигурацию часового:

'users' => [

    'model' => 'App\Users',

],

Если я добавлю «имя пользователя» в массив $loginNames в классе Sentinel, он будет работать, но не будет использовать мой класс Users, который расширяет класс Sentinel.

Может кто-нибудь сказать мне, что я могу делать неправильно?

Спасибо :)


person nvaughan84    schedule 29.01.2016    source источник
comment
Я решил проблему, но теперь, похоже, пользователь не входит в систему! Он отлично аутентифицируется, но когда я перехожу на другую страницу, Sentinel::check() возвращает false, несмотря на то, что пользователь вошел в систему!   -  person nvaughan84    schedule 29.01.2016


Ответы (1)


Решил это.

у меня по дурости еще было

use Cartalyst\Sentinel\Native\Facades\Sentinel;

в верхней части моего файла route.php, и поэтому он использовал это вместо моего нового класса Users!

person nvaughan84    schedule 29.01.2016