хочу войти в мультиаутентификацию паспорта laravel

вот как я могу передать имя моего нового охранника тренер

if (auth()->attempt($credentials)) {
$token = auth()->user()->createToken('TutsForWeb')->accessToken;
return response()->json(['token' => $token], 200);
} else {
return response()->json(['error' => 'UnAuthorised'], 401);
}

здесь я использую

 'Auth::guard('trainer')->attempt($credentials)'

но он показывает, что метод Illuminate\Auth\RequestGuard::attempt не существует.

я использую этот код https://github.com/tusharkhan/Laravel-Passport-MultiAuth/blob/master/app/Http/Controllers/PassportController.php


person Manoj kumar    schedule 29.04.2020    source источник


Ответы (1)


Фактически, метод попытки является частью SessionGuard, вы не можете использовать Passport и пытаться войти в систему пользователя, Passport используется для аутентификации API, а API обычно используют токены для аутентификации пользователей и не поддерживают состояние сеанса между запросами.

Чтобы это сработало, измените драйвер для защиты тренера на сеанс, подобный этому.

'trainer' => [
    'driver' => 'session',
    'provider' => 'trainers',// Your trainer table name here
],
person Khalid Khan    schedule 29.04.2020
comment
но мне нужно работать с паспортной аутентификацией, поэтому я должен заменить попытку - person Manoj kumar; 29.04.2020
comment
@Manojkumar перейдите по этой ссылке github.com/laravel/passport/issues/161#issuecomment -299690583, чтобы получить дополнительную информацию - person Khalid Khan; 29.04.2020