Google OAuth 1.0 - 将范围端口设置为443(AuthSub令牌的范围错误)

时间:2012-09-13 21:45:41

标签: http oauth port authsub

我一直在尝试学习OAuth(1.0)并试图通过尝试访问我在Google上的联系人来测试我的代码。这很简单,因为我不必建立朋友/消费者关系(谷歌只允许匿名/匿名消费者令牌),因为谷歌有OAuth Playground可以帮助我。

所以我按如下方式设置我的代码以转到

一切似乎进展顺利 - 我得到了请求令牌,授权很好,并且能够获得访问令牌。然后我尝试向https://www.google.com/m8/feeds/contacts/default/full/

提出请求

唯一的问题是,我一直收到这个错误:" 401:AuthSub令牌的范围错误"

我对此感到困惑,因为当我在OAuth Playground(http://googlecodesamples.com/oauth_playground/index.php)中使用相同的消费者信息发出相同的请求时,一切都会正常。

最后,我发现了以下问题:HTTP/1.1 401 Token invalid - AuthSub token has wrong scope

最顶层的答案让我得到了我的解决方案 - 我正在使用的一个JAR中的代码被编写为始终将端口设置为443(用于https)或80用于http。当我逐步完成代码并将端口更改为-1时,我的请求工作正常,我能够获得我想要的信息。

不幸的是,我无法更改JAR文件中的代码,因此我必须在我的最终修改内容。在回答这个问题时,乔纳森'说:

  

另一种解决方法是在令牌范围中包含:443;它必须匹配

我尝试将请求令牌查询字符串更改为?scope=https%3A%2F%2Fwww.google.com **%3A443** %2Fm8%2Ffeeds%2F,Google只是拒绝向我提供请求令牌 - 它给了我一个400错误Invalid scope: https://www.google.com:443/m8/feeds/。将https更改为http并没有做任何事情。我怎么做乔纳森(他近一年没有上网)建议的呢?

1 个答案:

答案 0 :(得分:0)

Google的身份验证范围是网址这一事实基本上是学术性的 - 它们实际上并没有提供任何有用的功能(see for yourself),因此添加端口只会让Google感到困惑。所以Jonathan的建议不正确。

他们甚至看起来像URL的唯一原因是它们可以被认为是普遍独特的(即使这只是可以说是真的)。​​

所以不要将:443放在您的身份验证范围内。

相关问题