0
的login.php故障排除谷歌的OAuth 2.0 - 不正確的查詢分離從谷歌的服務器
<?php
define('client_id', 'cid');
define('redirect_uri', 'http://domain.tld/file.php');
define('client_secret', 'secret');
$endpoint = 'https://accounts.google.com/o/oauth2/auth';
$querystr = array(
'response_type' => 'token',
'client_id' => client_id,
'redirect_uri' => redirect_uri,
'scope' => 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile',
# 'state' => $_SERVER['REQUEST_URI']
);
if (isset($_GET['access_token']))
print_r($_GET);
else
header('Location: ' . $endpoint . '?' . http_build_query($querystr));
?>
上面的代碼工作正常,我遇到的問題是,我從谷歌獲得的性反應是沒有很好地形成。我從他們那裏得到的查詢字符串不是以問號?
開頭,它以數字符號#
開頭。以下是來自Google服務器的示例returend。
http://domain.tld/file.php#access_token=ya29.AHES6ZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmno&token_type=Bearer&expires_in=3600
爲什麼由數字符號分開的文件路徑的查詢字符串?這是因爲我沒有使用https模式,它懲罰我?
我將responce_type改爲代碼並得到了一個普通的查詢字符串。感謝您的幫助!我不知道這是正常的。你可以添加一些細節,說明他們爲什麼使用URL的哈希值? –
我不知道確切的原因;我猜?更多表示對服務器的查詢。 – 2012-06-19 17:17:20
好的,非常感謝! –