Я установил и настроил LexikJWTAuthenticationBundle, он работает нормально, но у меня небольшая проблема.
Я включил кнопку авторизации для установки токена JWT, проблема в том, что единственный способ получить токен - использовать следующие команды:
curl -X POST -H "Content-Type: application/json" http://localhost:8000/api/login_check -d '{"username":"johndoe","password":"test"}'
Он отправил мой токен, и я положил его в API, хорошо.
Первая проблема:
Когда я пытаюсь выполнить этот запрос с помощью POSTMAN, я получаю сообщение об ошибке:
Невозможно найти контроллер для пути "/ api / login_check".
Маршрут неправильно настроен. (404 не найдено)
Запрос: localhost: 8000 / api / login_check? Username = johndoe & password = тестирование методом POST
Так что с curl это работает, но не с POSTMAN, почему? Вот мой security.yaml:
security:
encoders:
App\Entity\User:
algorithm: argon2i
providers:
app_user_provider:
entity:
class: App\Entity\User
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/api/login
stateless: true
anonymous: true
json_login:
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
require_previous_session: false
register:
pattern: ^/api/register
stateless: true
anonymous: true
api:
pattern: ^/api
stateless: true
anonymous: true
provider: app_user_provider
main:
anonymous: true
access_control:
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY }
role_hierarchy:
ROLE_DELEGATION: [ROLE_USER]
ROLE_EXPORT: [ROLE_USER]
ROLE_USER_ADMIN: [ROLE_USER]
ROLE_LIST_ADMIN: [ROLE_USER]
ROLE_IMPORT: [ROLE_USER]
ROLE_MOBILE: [ROLE_USER]
ROLE_ADMIN: [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
Вторая проблема, я хотел бы добавить логин внутри Swagger.
Как это:
Понятия не имею, как это сделать, попытался добавить @ApiRessource () внутри LoginCheckController, но ничего не происходит.
Нужна помощь / советы, заранее спасибо