我想将一个秘密pass_phrase值(0000)放入.env.dev.local文件(用于lexik_jwt_authentication),但身份验证不起作用。
如果我将值直接放入文件config/packages/lexik_jwt_authentication.yaml,则身份验证有效。
# composer.json
"symfony/dotenv": "^4.2",
# config/packages/lexik_jwt_authentication.yaml
lexik_jwt_authentication:
pass_phrase: '%env(JWT_PASSPHRASE)%'
# .env.dev.local
JWT_PASSPHRASE='0000'
# .env
JWT_PASSPHRASE=''
为了调试这个,我编辑了vendor/lexik/jwt-authentication-bundle/DependencyInjection/LexikJWTAuthenticationExtension.php如下,看看发生了什么:
# vendor/lexik/jwt-authentication-bundle/DependencyInjection/LexikJWTAuthenticationExtension.php
var_dump($config['pass_phrase']);
die('end of the story');
$container->setParameter('lexik_jwt_authentication.pass_phrase', $config['pass_phrase']);
显示的值为:
env_6a2d2290a3aa88de_resolve_JWT_PASSPHRASE_15ef1bcee0c9b69d171abe271c686aa8
文档 https://symfony.com/doc/master/configuration/environment_variables.html对此很清楚也很简单,首先在点 envs ( DATABASE_URL ) 中定义一个值,然后将其用于配置文件'%env( DATABASE_URL)%'。
我该如何解决这个问题以及为什么我有这个价值?