1
我想在用Google Oauth 2.0登錄後獲取用戶信息。但是我在1小時後不斷收到錯誤,要求刷新令牌。我不想使用刷新令牌,因爲我已經在線設置訪問類型並且提示自動批准。使用Google Oauth PHP獲取用戶信息而不刷新標記
這是導致問題的代碼,特別是get()函數出錯。
$service = new Google_Service_Oauth2($client);
if ($client->getAccessToken())
{
//For logged in user, get details from google using access token
$user = $service->userinfo->get();
$user_id = $user['id'];
$user_name = filter_var($user['name'], FILTER_SANITIZE_SPECIAL_CHARS);
$first_name = filter_var($user['given_name'], FILTER_SANITIZE_SPECIAL_CHARS);
$last_name = filter_var($user['family_name'], FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_var($user['email'], FILTER_SANITIZE_EMAIL);
$profile_url = filter_var($user['link'], FILTER_VALIDATE_URL);
$profile_image_url = filter_var($user['picture'], FILTER_VALIDATE_URL);
$gender = filter_var($user['gender'], FILTER_SANITIZE_SPECIAL_CHARS);
$personMarkup = "$email<div><img src='$profile_image_url?sz=50'></div>";
$_SESSION['token'] = $client->getAccessToken();
}
我不需要訪問數據,因爲一旦他們第一次登錄,我將它保存在我的數據庫中。但我假設我不能存儲他們的信息,除非我有離線訪問?有沒有辦法解決這個問題? – jm874327 2015-02-18 19:59:02
所有離線訪問都會向您返回一個refreshToken,以便您可以使用它,而無需再次請求用戶的訪問權限。 – DaImTo 2015-02-18 20:00:56
我的最終目標是不讓用戶繼續授予離線訪問權限並使用上述代碼保存他們的信息。這可能沒有離線訪問? – jm874327 2015-02-18 21:19:44