为什么我的Google OAuth网址会在返回的网址中放置哈希值?

时间:2012-12-04 03:57:28

标签: php google-app-engine

GIVEN网址:

  

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

返回网址:

  

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

如果#更改为?(以启动查询字符串),则返回URL完全有效。为什么Google会返回#,从而“查杀查询字符串”

单独注意:

另外,我不太清楚我是否应该请求tokencode作为回复类型。我打算让用户将自己的Google云端硬盘帐户附加到我网站上的帐户中。我已多次阅读文档,但我无法弄清楚哪个更适合我的网站?现在(在上面的示例中)我使用令牌。另外,根据我使用的是哪一个,我应该将哪些内容存储在我的数据库中以备将来使用?

1 个答案:

答案 0 :(得分:3)

原因是因为我要求token而不是code。当我收到代码时,URL的格式没有散列(#),而是格式化为查询字符串。我的原因尚不清楚,但文档指出token只应用作重Javascript应用程序的响应类型。我写的API代码是用PHP编写的,所以code显然是合适的选择。