Symfony之jwt的使用:
gesdinet/jwt-refresh-token-bundle 和 lexik/jwt-authentication-bundle 一起使用实现 生成token和 refresh_token操作
参考文档: https://github.com/markitosgv/JWTRefreshTokenBundle
symfony7下关于 lexik/jwt-authentication-bundle 的补充
直接执行 $ php bin/console lexik:jwt:generate-keypair 的时候,会生成 private.pem 和 public.pem, (实际上带有test)这是没有问题的.
然后通过环境变量读取:
JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem
JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem
JWT_PASSPHRASE=
使用验证,但是这样的 private.pem 是不安全的(测试环境当然是没问题的),所以还有个配置 JWT_PASSPHRASE, 这个参数是在执行 php bin/console lexik:jwt:generate-keypair 之前,手动配置的,比如 JWT_PASSPHRASE=c8f13be9d73a48f2e97ef11bbfdf7e1e589ca45d2a679c37e0bc431c4fe12591,
然后再执行 php bin/console lexik:jwt:generate-keypair, 此时 private.pem 就是加密的.
可以用 openssl 验证一下私钥是否被加密:
$ openssl rsa -in config/jwt/private-test.pem
它会提示输入 pass phrase,说明私钥已经被加密保护。
