У меня есть API в Laravel, и я использую паспорт для аутентификации.
В моем файле config / auth.php я изменил это, так что API Api Guard использует паспорт и обращается к моему провайдеру пользователя
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'passport',
'model' => App\Users::class,
],
Вот мое приложение / user.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens;
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public static function lookup($login)
{
return Self::where('email', $login)->first();
}
}
Теперь, когда я хочу войти в систему, я запускаю этот код:
$newUser = new User([
'name' => $login,
'email' => $login,
'password' => $password
]);
$authUser = User::lookup($login);
$tokenResult = $authUser->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($remember)
{
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
}
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse($tokenResult->token->expires_at)->toDateTimeString()
]);
Это возвращает мне токен доступа очень хорошо.Что я пытаюсь сделать, это проверить, если пользователь вошел в систему при выполнении других функций на сайте.Я делаю это, как показано ниже в файле маршрутов:
Route::get('me', 'Account@me')->middleware('auth:api');
Поэтому я хочу получить информацию о том, кто вошел в систему, но он падает на промежуточном программном обеспечении, сообщая мне об ошибке «Аутентификация провайдера пользователя [passport] не определено '
Любая помощь оценена