Я хочу поместить секретное значение 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 понятен и довольно прост в этом, сначала определив значение в dot envs ( DATABASE_URL ), затем используя его в файлах конфигурации '% окр (DATABASE_URL)% '.
Как это исправить и почему у меня это значение?