Google Oauth2认证大约需要15秒

Google Oauth2 authentication takes about 15 seconds

我正在使用 google-php-api 进行身份验证。

大部分时间都不到 6 秒, $client->authenticate($code);

这大部分时间大约需要 3 秒, $token = $client->getAccessToken();

这也花费了不到 6 秒的大部分时间。 $client->$data = $client->verifyIdToken($tokens->id_token)

知道为什么吗,或者这是否正常?

我也一样。 问题是生成错误的 cURL:在 DNS 缓存中找不到主机名。

这里有人Curl Hostname was NOT found in DNS cache error说是cURL版本的问题

--------编辑--------

我添加到/etc/resolv.conf

nameserver 127.0.0.1

最初只是

nameserver 8.8.8.8

...一切都非常快

强制 ipv4 有帮助

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

使用Guzzle的,支持@kak3n回答:

$http = new GuzzleHttp\Client([
    'timeout'           => 3,
    'force_ip_resolve'  => 'v4'
]);

$client->setHttpClient($http);

真的对我有用。之前是 64 秒左右,现在只有几秒。

有趣的部分是超时。超时需要多长时间???尝试使用更长的值,自己看看 ;)