我有一個基於Web的應用程序,它使用Google OAuth2.0作爲登錄框架。它以前工作很好,直到昨天。訪問令牌過期後,應用程序無法獲取刷新令牌。除此之外,「請求許可」頁面更改爲「有離線訪問」,而不是「知道您在Google上的人」和「查看您的電子郵件」OAuth 2.0訪問令牌已過期,並且刷新令牌不可用
最初,「請求許可」頁面將要求訪問「瞭解你在Google上的人」和「查看你的電子郵件」。用戶註銷並嘗試第二次登錄後,「請求許可」頁面也將相同。
但是,直到昨天,「請求許可」頁面更改爲「有離線訪問」。訪問令牌過期後,我收到以下錯誤消息:
PHP致命錯誤:未收到的異常'Google_AuthException'帶有消息'OAuth 2.0訪問令牌已過期,並且刷新令牌不可用。刷新令牌不會返回自動批准的響應。 in /home2/xxxx/public_html/test/google-api-php-client/src/auth/Google_OAuth2.php:221
我試過。但是,我仍然有這個致命的錯誤。下面是我的代碼獲取訪問令牌:
if ($client->getAccessToken()) {
$token = $client->getAccessToken();
$authObj = json_decode($token);
$refreshToken = $authObj->refresh_token;
$user = $oauth2->userinfo->get();
$me = $plus->people->get('me');
$email = filter_var($user['email'], FILTER_SANITIZE_EMAIL); // get the USER EMAIL ADDRESS using OAuth2
$optParams = array('maxResults' => 100);
$activities = $plus->activities->listActivities('me', 'public', $optParams);
$_SESSION['access_token'] = $client->getAccessToken();
} else {
$authUrl = $client->createAuthUrl();
}
我試圖尋找像我這樣的類似問題,但我找不到一個。這發生在昨天以來。在此之前,我從未對代碼做過任何修改。
據我所知,他們改變了一點他們的安全管理。如果您現在可以訪問應用程序,那麼Google知道未來,您要求提供哪些權限並將其保存,如果您想擁有新的權限或脫機訪問權限,則只會再詢問一次。我想,這是一個暫時的錯誤,他們一直在更新他們的系統,因爲我現在沒有遇到任何問題。 –
更新:你說得對,我也不能使用刷新標記了... –
你能告訴我如何擺脫這個? – Akilsree1