Invalid JSON Message while using LexikJWTAuthenticationBundle

余生长醉 提交于 2020-01-03 03:00:45

问题


I have a Symfony 4 project where I need to perform secure authentication using LexikJWTAuthenticationBundle.

I implemented the bundle by following its documentation and I get this error when I execute the following command: curl -X POST -H "Content-Type: application/json" http://localhost:8000/api/login_check -d '{"username":"johndoe","password":"test"}'

Error message :

Invalid JSON

This error is of type Bad Request (400) and it takes place at the time of the json_decode in the file :

Symfony\Component\Security\Http\Firewall\UsernamePasswordJsonAuthenticationListener

security.yaml :

providers:
    user:
        entity:
            class: App\Entity\User
            property: email

encoders:
    App\Entity\User: bcrypt

role_hierarchy:
    ROLE_VIP:  ROLE_USER
    ROLE_ADMIN:       [ROLE_USER, ROLE_VIP ]
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_VIP, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

firewalls:
    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

    api:
        pattern:   ^/api
        stateless: true
        guard:
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator


    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        pattern: ^/
        anonymous: true
        form_login:
            username_parameter: "login_form[email]"
            password_parameter: "login_form[password]"
            login_path: site_accueil
            check_path: site_accueil
            default_target_path: site_espace_vip_index
            remember_me: false
            success_handler: redirect.after.login
        logout:
            path: /deconnexion
            target: /
        guard:
            authenticators:
                - App\Security\LoginFormAuthenticator
access_control:
- { path: ^/connexion-vip, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/interface, roles: [ROLE_ADMIN] }
- { path: ^/profile, roles: [ROLE_VIP, ROLE_ADMIN] }
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api,       roles: IS_AUTHENTICATED_FULLY }

routes.yaml :

api_login_check:
    path: /api/login_check

lexik_jwt_authentication.yaml :

lexik_jwt_authentication:
secret_key: '%env(resolve:JWT_SECRET_KEY)%'
public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
pass_phrase: '%env(JWT_PASSPHRASE)%'
token_ttl: 3600

The SSH keys were generated.

What's the problem please ?


回答1:


Problem solved : curl -X POST -H "Content-Type: application/json" http://localhost:8000/api/login_check -d "{\"username\":\"johndoe\",\"password\":\"test\"}"



来源:https://stackoverflow.com/questions/54959497/invalid-json-message-while-using-lexikjwtauthenticationbundle

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!