Продолжайте получать плохие учетные данные - PullRequest
0 голосов
/ 27 мая 2019

Я снова и снова получаю плохие учетные данные.Я не могу найти, что не так в конфигурации.

Приложение уже имеет безопасность пользователя (/ api path).Я пытаюсь создать другой для нового пакета API (/ apimobile path).

Config.yml

fos_user:
    db_driver:     orm
    firewall_name: api_secure_area
    user_class:    APIBundle\Entity\User
    from_email:
        address:        r@re.fr
        sender_name:    Team

security.yml

security:

    role_hierarchy:
        ROLE_ANONYMOUS: ROLE_ANONYMOUS
        ROLE_USER:       [ROLE_ANONYMOUS]
        ROLE_ENTITY_M:  [ROLE_USER]
        ROLE_ENTITY_MANAGER: [ROLE_ENTITY_M]
        ROLE_ENTITY_SENIORS_MANAGER: [ROLE_ENTITY_M]
        ROLE_REZOPRO_MANAGER: [ROLE_USER]
        ROLE_MACIF: [ROLE_USER]
        ROLE_ADMIN: [ROLE_MACIF, ROLE_ENTITY_MANAGER, ROLE_ENTITY_SENIORS_MANAGER, ROLE_ENTITY_M, ROLE_REZOPRO_MANAGER]
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
        auth_token_user_provider:
            id: auth_token_user_provider
        backend:
            entity:
                # class:    AppBundle\Entity\APIUser
                class:    AppBundle\Entity\APIUser
                property: email

    firewalls:
        # disables authentication for assets and the profiler, adapt it according to your needs
        api:
            pattern: ^/api/
            stateless: true
            simple_preauth:
                authenticator: auth_token_authenticator
            provider: auth_token_user_provider
            anonymous: ~

        api_secure_area:
            pattern: ^/apimobile/
            stateless: false
            anonymous: ~
            provider: fos_userbundle
            lexik_jwt: ~
            json_login:
                check_path: /apimobile/login
                success_handler: lexik_jwt_authentication.handler.authentication_success
                failure_handler: lexik_jwt_authentication.handler.authentication_failure
                require_previous_session: false


        app:
            pattern: ^/
            anonymous: true
            provider:  backend
            form_login:
                login_path: login
                check_path: login_check
            logout:
                path:       logout
                target:     homepage

        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false


    access_control:
        - { path: ^/api, roles: ROLE_ANONYMOUS }
        - { path: ^/admin, roles: ROLE_SUPER_ADMIN }
        - { path: ^/downloads, roles: ROLE_ANONYMOUS }
        - { path: ^/Resources, methods: [GET] }

    encoders:
        AppBundle\Entity\APIUser:
            algorithm: bcrypt
            cost: 12
        APIBundle\Entity\User: sha1

routing.yml

api_mobile_login_check:
    path: /apimobile/login

Меня интересует, нет ли чего-то хитрого в том, что FOSUser нужно использовать имя пользователя в качестве идентификатора, когдаСуществующий поставщик бэкэнда использует электронную почту.

В результате получайте следующее:

curl -X POST -H "Content-Type: application / json" http://localhost:8000/apimobile/login -d '{"username":" UserTest "," password ":" test "} '

{"code":401,"message":"Bad credentials"}

Спасибо за вашу помощь.

EDIT: UserTest создан с использованием команды fos: user в терминале.

...