Промежуточное программное обеспечение auth:api
, которое вы используете, использует Laravel Passport.Вы не можете использовать его, если вам нужна аутентификация на основе пользовательских токенов, как вы делаете это при создании своих собственных токенов.
Если вы хотите использовать Passport, сделайте следующее:
Сохраните ваши маршруты такими.Маршруты, требующие аутентификации, должны быть внутри промежуточного программного обеспечения auth:api
.
Вы можете удалить поле api_token
таблицы users
.Функция $table->rememberToken()
в миграции полностью отличается от того токена API, о котором вы думаете.На самом деле токены вообще не хранятся в базе данных.Токен, который вы видите в таблице oauth_access_token
в базе данных, не является токеном, который вы используете для своих HTTP-запросов.
НЕ создавайте пользовательский токен, как вы.Убедитесь, что пара логин / пароль пользователя действительна, сгенерируйте токен и верните его потребителю API следующим образом:
if (Auth::attempt(['login' => $req->login, 'password' => $req->password])) {
$user = Auth::user();
$token = $user->createToken('ToutelaBreizh')->accessToken;
return response()->json(['token' => $token],200);
}
Остерегайтесь размещать маршруты входа / регистрации за пределами auth:api
промежуточное ПО, в противном случае вам нужно будет передать токен маршруту, который должен дать вам этот токен - это не имеет смысла.
Далее, убедитесь, что вы отправили токен в API в Authorization
заголовок запроса, а не в параметрах запроса, как вы делаете.Добавьте в Postman следующий заголовок:
Authorization: Bearer your_token_retrieved_before
Теперь, когда вы почти закончили, вы можете использовать свой API с Postman.