Joh*_*ong 5 heroku symfony public-key private-key lexikjwtauthbundle
我将我的应用程序部署到Heroku,然后我添加了一个带有LexikJWTAuthenticationBundle的api进行身份验证.我创建了一个带有密码的公钥和私钥,就像文档说的那样,它在我的本地机器上工作得很好,但我不知道如何创建或复制这些文件给Heroku.
使用 LexikJWTAuthenticationBundle v2.5.0,现在可以将密钥作为环境变量提供:commit 154c60e90b8f10e1fdca819a681b5f189e8ed9ef。
替换 lexik_jwt_authentication.yaml 中字符串键的键路径:
前 :
lexik_jwt_authentication:
private_key_path: '%kernel.project_dir%/%env(JWT_PRIVATE_KEY_PATH)%'
public_key_path: '%kernel.project_dir%/%env(JWT_PUBLIC_KEY_PATH)%'
Run Code Online (Sandbox Code Playgroud)
后 :
lexik_jwt_authentication:
secret_key: '%env(JWT_SECRET_KEY)%'
public_key: '%env(JWT_PUBLIC_KEY)%'
Run Code Online (Sandbox Code Playgroud)
我没有找到将完整密钥作为字符串粘贴到 .env 文件中的解决方案,因此我将private_key_path和public_key_pathinconfig/dev/lexik_jwt_authentication.yaml用于我的开发环境,并secret_key仅public_key在config/prod/lexik_jwt_authentication.yaml, 中用于我的 Heroku 生产。
最后,在 Heroku 上添加环境变量,部署即可完成:
LBA*_*LBA -1
您的 config.yml 中可能有类似的内容:
lexik_jwt_authentication:
private_key_path: '%kernel.root_dir%/var/jwt/private.pem'
public_key_path: '%kernel.root_dir%/var/jwt/public.pem'
pass_phrase: 'somepassphrase'
token_ttl: 2592000
Run Code Online (Sandbox Code Playgroud)
就我而言,这解析为 /app/var/jwt/ 这样的路径,在该文件夹中我有两个文件 private.pem 和 public.pem。
你说它在开发中运行,所以你应该有类似的东西。因此,您只需将文件夹结构和文件以及标准部署(Symfony 和其他)文件上传/签入/部署到 Heroku。您的具体问题是什么?
强烈建议: 您应该为每个环境设置不同的密钥对,因此在最小设置中,您不应该在 config.yml 中定义 lexik_jwt_authentication,而是在 config_dev.yml 和 config_prod.yml 中定义两次,并且有一个开发和生产的不同的 pem 文件集。
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |