dotenv值读取不正确

时间:2019-04-08 17:43:52

标签: symfony dotenv

我想将 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

文档 Windows API明确且非常简单,首先在 dot envs DATABASE_URL )中定义一个值,然后将其用于配置文件' %env(DATABASE_URL)%'

如何解决此问题以及为什么拥有此值?

1 个答案:

答案 0 :(得分:0)

您的文件名必须是.env.local而不是.env.dev.local