1

下午好。请我在 symfony 4 api 项目中使用 LexikJWTAuthenticationBundle。我正在将 UserProvider 用于 Doctrine。

在配置 Doctrine User Provider 之后,我已经安装并配置了 LexikJWTAuthenticationBundle。但是,当我尝试在 URL http://localhost:8000/api/login_check上使用 Postman 验证这个 JSON {"username":"ak", "password":"ak"} 我有这个错误:{"代码”:401,“消息”:“错误凭据”}。请参阅下面我的 Security.yaml 配置文件。我已经阅读论坛试图解决这个问题,但我还没有找到解决方案。你能帮我么?

security:
encoders:
    App\Entity\Utilisateur:
        algorithm: bcrypt

providers:
    #in_memory: { memory: ~ }
    our_db_provider:
        entity:
            class: App\Entity\Utilisateur

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

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

    main:
        pattern:    ^/
        user_checker: App\Security\UtilisateurChecker
        anonymous: true
        provider: our_db_provider         

access_control:
    - { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api,       roles: IS_AUTHENTICATED_FULLY }
4

2 回答 2

4

您在安装过程中是否遗漏了一项配置?我没有看到lexik:

lexik_jwt_authentication:
    secret_key:       '%kernel.project_dir%/config/jwt/private.pem' # required for token creation
    public_key:       '%kernel.project_dir%/config/jwt/public.pem'  # required for token verification
    pass_phrase:      'your_secret_passphrase' # required for token creation, usage of an environment variable is recommended
    token_ttl:        3600
于 2018-08-21T12:46:03.360 回答
0

大家早上好。我找到了我的问题的解决方案。事实上,我输入了错误的用户密码。

为了解决这篇文章,我使用了这篇文章https://numa-bord.com/miniblog/symfony-4-les-base-dune-gestion-des-utilisateurs-inscription-connexion-droits-dacces/ 我已经使用文中实现的 create user 命令创建了 au 数据库用户。

在我成功连接到这个先前创建的用户之后。ApiPlatform 为我生成一个网络令牌。

非常感谢

于 2018-09-08T11:35:02.133 回答