symfony 正在尝试获取当前不工作的令牌

8qgya5xd  于 2023-02-16  发布在  其他
关注(0)|答案(2)|浏览(113)

我正在尝试使用JWT Auth来访问我的API:/API/docs但我在尝试使用以下命令获取令牌时遇到错误:

curl -X POST -H "Content-Type: application/json" http://localhost/login_check -d '{"username":"johndoe","password":"test"}'

当然我会更换用户名和密码
签名密钥“/var/www/config/jwt/private.pem”不存在或不可读。您是否正确设置了配置密钥“lexik_jwt_authentication.signature_key”?(500内部服务器错误)
security.yaml

firewalls:
        login:
            pattern:  ^/login
            stateless: true
            anonymous: true
            provider: fos_userbundle_2
            json_login:
                check_path: /login_check
                username_path: username
                password_path: password
                success_handler: 
    lexik_jwt_authentication.handler.authentication_success
                failure_handler: 
    lexik_jwt_authentication.handler.authentication_failure

        main:
            pattern:   ^/
            provider: fos_userbundle_2
            stateless: true
            anonymous: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator

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

签名密钥“/var/www/config/jwt/private.pem”不存在或不可读。您是否正确设置了配置密钥“lexik_jwt_authentication.signature_key”?(500内部服务器错误)

gorkyyrv

gorkyyrv1#

检查读写openssl生成的文件的权限。

$ mkdir -p config/jwt
$ openssl genpkey -out config/jwt/private.pem -aes256 -algorithm rsa -pkeyopt rsa_keygen_bits:4096
$ openssl pkey -in config/jwt/private.pem -out config/jwt/public.pem -pubout

在我之前的案例中:

-rw-------    1 root     root          3434 Jul 26 21:21 private.pem
-rw-r--r--    1 root     root           800 Jul 26 21:21 public.pem

那我就跑

chmod 644 public.pem private.pem

现在:

-rw-r--r--    1 root     root          3434 Jul 26 21:21 private.pem
-rw-r--r--    1 root     root           800 Jul 26 21:21 public.pem

而且很有效。
文件:
https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/index.md#generate-the-ssh-keys

1l5u6lss

1l5u6lss2#

在我的本地环境中,-rw------- access运行良好,但在prod中只有-rw-r--r--工作,所以我认为如果您遇到这个问题,并确定您已经创建了pem文件,您应该更改private.pem上的权限,它将按预期工作。

相关问题