значения dotenv не читаются правильно - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу поместить секретное значение 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)% '.

Как это исправить и почему у меня это значение?

1 Ответ

0 голосов
/ 09 апреля 2019

Ваше имя файла должно быть .env.local вместо .env.dev.local

...