Symfony6 jwt api аутентификация: Unable to find the controller for path "/api/login". The route is wrongly configured

Рейтинг: 0Ответов: 1Опубликовано: 21.02.2023

Не могу настроить никак апи jwt. Делаю все по инструкции в документации, но ничего не работает. Получаю ошибку Unable to find the controller for path "/api/login". The route is wrongly configured

Конфиги: routes.yaml:

homepage:
    path: /
    controller: App\Controller\Homepage\HomepageController::__invoke
    locale: '%app.default_locale%'

controllers:
    resource: ../src/Controller/
    type: attribute
    prefix: /{_locale}
    requirements:
       _locale: 'en'

api_login_check:
    path: /api/login
  
api:
    prefix: /api
    resource: ../src/Api/
    type: attribute

security.yaml:

security:
    enable_authenticator_manager: true
    # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
    password_hashers:
        App\AdminBundle\Entity\User\AdminUser:
            algorithm: auto
        App\Entity\User\User:
            algorithm: auto
    providers:
        admin_user_provider:
            entity:
                class: Ef\AdminBundle\Entity\User\AdminUser
                property: email
        app_user_provider:
            entity:
                class: App\Entity\User\User
                property: email
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        api_login:
            pattern: ^/api/login
            stateless: true
            provider: app_user_provider
            json_login:
                username_path: email
                password_path: password
                check_path: /api/login_check
                success_handler: lexik_jwt_authentication.handler.authentication_success
                failure_handler: lexik_jwt_authentication.handler.authentication_failure

        api:
            pattern:   ^/api
            stateless: true
            provider: app_user_provider
            jwt: ~
# ....
main:
#....

Плюс не могу понять: мне нужно писать контроллер для логина, или оно у него где-то внутри уже есть и должно подхватиться?

Ответы

▲ 0

В routes.yaml нужно было указать не path: /api/login как в документации, а

api_login_check:
    path: /api/login_check