我正在尝试通过JWT身份验证访问我的API:/ api / docs 但是我目前在尝试使用此命令获取令牌时遇到错误:curl -X POST -H“ Content-Type:application / json” http://localhost/login_check -d'{“ username”:“ johndoe”,“密码”:“测试”}'
我当然会替换用户名和密码
签名密钥“ /var/www/config/jwt/private.pem”不存在或不可读。您是否正确设置了“ lexik_jwt_authentication.signature_key”配置密钥? (500个内部服务器错误)
security.yaml
防火墙: 登录: 模式:^ /登录 无状态:正确 匿名:true 提供者:fos_userbundle_2 json_login: check_path:/ login_check username_path:用户名 password_path:密码 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个内部服务器错误)
答案 0 :(得分:3)
检查特权以读写opensl生成的文件。
$ 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
它有效。
文档:
答案 1 :(得分:0)
在我的本地环境中-rw -------访问效果很好,但仅在产品中-rw-r--r--可以工作,所以我想如果您遇到此问题并确定已经创建pem文件,您应该更改private.pem的权限,即可按预期运行。