0

我想将一个秘密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)%'

我该如何解决这个问题以及为什么我有这个价值?

4

0 回答 0