2012-12-04 29 views
0

給定的URL:爲什麼我的Google OAuth網址會在我返回的網址中放置哈希值?

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=drive&redirect_uri=http%3A%2F%2Fwww.woktop.com%2Fnewservice.php&response_type=token&client_id=889314330670.apps.googleusercontent.com

返回URL:

http://www.woktop.com/newservice.php#state=drive&access_token=ya29.AHES6ZRtTRmpakw5qa0SejLsC0qzNNb9R6GYF0xZGt_uphe3WfeeZng&token_type=Bearer&expires_in=3600

返回UR如果#更改爲?(以啓動查詢字符串),則L完全可用。爲什麼世界上是谷歌返回#,因此「查詢字符串」

單獨的說明:

在一個單獨的說明,我不太知道我是否應該請求tokencode作爲響應類型。我打算讓用戶將他們的Google雲端硬盤帳戶附加到我的網站上的帳戶。我已經多次閱讀文檔,我無法弄清楚哪一個更適合我的網站?現在(在上面的例子中)我帶着令牌去。另外,根據我使用哪一個,我應該在我的數據庫中存儲什麼以備將來使用?

回答

2

原因是因爲我要求token而不是code。當我收到代碼時,URL被格式化爲沒有散列(#),但是格式化爲查詢字符串。我之所以不清楚這個原因,但文檔指出token只能用作重載Javascript應用程序的響應類型。我寫的API代碼是用PHP編寫的,所以code顯然是合適的選擇。

+0

出於好奇,以後你用'code'做了什麼? –

+0

我不確定我是否記得,但是如果我不得不猜測我可能用它做了API請求,或者請求回OAuth提供程序以獲取訪問令牌。 – cereallarceny