我已经成功地使用了OAuth1.0+OpenID混合协议来与谷歌进行身份验证,此后使用了它的服务。
但是,对于特定的用户帐户,我面临一个错误。我现在的流量:
Discovery
https://accounts.google.com/o/openid2/auth?https://accounts.google.com/o/openid2/auth?openid.ns=http://specs.openid.net/auth/2.0&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select&.....&openid.ns.ext2=http://specs.openid.net/extensions/oauth/1.0&openid.ext2.consumer=mywebsite.com&openid.ext2.scope=https://picasaweb.google.com/data+https://www-opensocial.googleusercontent.com/api/people/+http://www.google.com/m8/feeds/)但是,对于特定的用户帐户,谷歌没有像上面提到的那样在成功的身份验证和授予权限之后传递结果,而是重定向到某个URL https://accounts.google.com/o/openid2/approval?xsrfsign=AC9jObYAAAAATpF6x6S6Ac7MfHaZ,然后返回到我的应用程序,没有查询字符串中的任何参数。
同样的代码也适用于其他帐户。我无法确定什么是特殊的可以为一个帐户(除了我创建了上个月)。请注意,只有当我在范围中包括picasa时,才会发生这种情况。如果我不包括picasa,它就有效了。
请帮我一下。
发布于 2011-10-31 06:17:10
通过添加request_token请求能够修复此问题。奇怪的是,它的工作没有这个要求对大多数帐户。但是,对于创建的新帐户,我必须在请求中显式地设置这个参数。一旦设置了这个参数,而不是将用户重定向到xsrfsign.URL,我得到了用户详细信息和请求令牌。
https://stackoverflow.com/questions/7703002
复制相似问题