Laravel 7 охранник не входит - PullRequest
0 голосов
/ 22 апреля 2020

У меня вопрос по поводу laravel 7 custom guard auth.

    $this->guard()->attempt(
        $this->credentials($request), $request->filled('remember')
    );

В этой строке кода используется защита по умолчанию 'web', которая прекрасно работает.

    $this->guard('agent')->attempt(
        $this->credentials($request), $request->filled('remember')
    );

В этой строке кода используется защита агента 'agent', которая была настроен правильно, так как он возвращает «1» как true, я также могу получить информацию о пользователе, используя guard('agent')->user(). Однако он не регистрирует пользователя в приложении. Это l oop вернуться на страницу входа. Любая помощь будет оценена.

Код охраны:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
        'hash' => false,
    ],
    'agent' => [
        'driver' => 'session',
        'provider' => 'agents',
    ],
],

Код поставщика:

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'agents' => [
        'driver' => 'eloquent',
        'model' => App\Agent::class,
    ],
],

1 Ответ

0 голосов
/ 22 апреля 2020

вместо использования $this->guard()->attempt(

заменил его на

auth()->attempt([$this->credentials($request), $request->filled('remember')])  

, если вы хотите использовать защиту по умолчанию или если вы хотите использовать заданную c охрану, просто сделайте это путь. мы будем использовать ваши существующие охранники, которые могут быть использованы.

auth('agent')->attempt([$this->credentials($request), $request->filled('remember')]) 
...