问题描述
嗨,我正在尝试从api获取令牌,但是无论我尝试对Droplet进行什么操作,每次每次都会获得无效的客户端,本地代码和Droplet上的代码都是相同的,目前在本地工作,但不能在液滴上。
这是代码
return Cache::rememberForever('payment_token',function () {
$client = new Client(['http_errors' => false]);
$params = [
'client_id' => env('CLIENT_ID'),'client_secret' => env('CLIENT_SECRET'),'grant_type' => 'client_credentials',];
$headers = [
'Accept' => 'application/json',];
$response = $client->request('POST','https://apipay.io/auth/token/',[
'json' => $params,'headers' => $headers
]);
$res_body = json_decode($response->getBody()->getContents());
return $res_body->access_token;
});
发布的网址不是一个真实的网址,我真的不认为发布真实的网址是明智的,因为如果没有我无法在此处发布的client_id和client_secret,它就无法正常工作。
有没有理由让小滴干扰呢?我该怎么做才能解决此问题?
解决方法
仔细检查远程.env
文件,并确保它不是该文件的某些过时的缓存版本(然后env()
将返回)。 Laravel具有此功能,确实很棘手,而没有考虑到这一点(例如,由于没有明显的原因而无法正常工作)。 php artisan cache:clear
清除配置缓存,php artisan config:cache
再次建立它;我什至认为生产默认情况下使用缓存的配置(这可能是实际的区别)。