0

嗨,我正在尝试从 api 获取令牌,但无论我在 droplet 上尝试什么,我每次都会得到一个无效的客户端,代码在本地和在 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 它将无法工作。

液滴会干扰这个有什么原因吗?我能做些什么来解决这个问题?

4

1 回答 1

1

仔细检查远程.env文件并确保它不是某个过时的缓存版本(env()然后会返回)。Laravel 有这个特性,虽然没有考虑到这一点,但确实非常棘手(例如,它没有明显的原因就不起作用)。php artisan cache:clear清除配置缓存并php artisan config:cache重新构建它;我什至认为生产默认使用缓存配置(这可能是那里的实际差异)。

于 2020-10-08T20:50:03.640 回答