对配置变量的更改不会持续到laravel 5.2

时间:2017-03-15 11:56:53

标签: php laravel oauth-2.0 laravel-5.2 config

我遇到问题,我需要根据客户端ID更改oauth2服务器使用的配置变量。这是配置:

'grant_types' => [
        'password' => [
            'class' => '\League\OAuth2\Server\Grant\PasswordGrant',
            'callback' => '\App\Api\OAuth2\PasswordGrantVerifier@verify',
            'access_token_ttl' => 3600
        ],
]

然后在我用Authorizer::issueAccessToken();发出令牌之前,我设置了配置变量:config(['oauth2.grant_types.password.access_token_ttl' => 86400]);如果我然后运行dd(config('oauth2'));我得到:

'grant_types' => array:1 [
        'password' => array:3 [
            'class' => '\League\OAuth2\Server\Grant\PasswordGrant',
            'callback' => '\App\Api\OAuth2\PasswordGrantVerifier@verify',
            'access_token_ttl' => 86400
        ],
]

但如果我让代码运行并发出令牌,则响应仍然是:

{
    "access_token": "HOoODcDzXilakd5TtOv4qqBSBUwEqqWhIL36ALdM",
    "token_type": "Bearer",
    "expires_in": 3600,
    "refresh_token": "6mfyizKlRGC55x6ZY8ROx24UcVeWfljikNZv6ME7",
    "allowed_scopes": [
      "*"
    ],
    "user_is_activated": true
}

如果我对值'access_token_ttl' => 86400进行硬编码,我会得到所需的结果:

{
    "access_token": "HOoODcDzXilakd5TtOv4qqBSBUwEqqWhIL36ALdM",
    "token_type": "Bearer",
    "expires_in": 86400,
    "refresh_token": "6mfyizKlRGC55x6ZY8ROx24UcVeWfljikNZv6ME7",
    "allowed_scopes": [
      "*"
    ],
    "user_is_activated": true
}

问题是access_token_ttl需要基于客户端ID动态。我无法对供应商库进行更改,因为这会在将来的更新中中断。有人知道在运行时更改应用程序范围内的配置变量的方法仍然存在于不同的方法中吗?

2 个答案:

答案 0 :(得分:0)

检查您是否已缓存配置,运行php artisan config:cache以重置配置缓存。部署之后,您可以在生产服务器上运行{{1}}以提升性能。

答案 1 :(得分:0)

问题在于已经在登录路线上提供了课程。通过检查AuthServiceProvider中Request的{​​{1}}类并更改其中的配置来修复它。