Oauth 谷歌混合协议认证问题

Oauth 谷歌混合协议认证问题,oauth,openid,gdata,picasa,Oauth,Openid,Gdata,Picasa,我已经成功地使用OAuth1.0+OpenID混合协议与Google进行身份验证,然后使用它的服务 但是,我面临一个特定用户帐户的错误。 我当前的流量: 执行发现 使用OpenID和OAuth参数将用户重定向到提供程序(如:https://accounts.google.com/o/openid2/auth?https://accounts.google.com/o/openid2/auth?openid.ns=http://specs.openid.net/auth/2.0&openid.cl

我已经成功地使用OAuth1.0+OpenID混合协议与Google进行身份验证,然后使用它的服务

但是,我面临一个特定用户帐户的错误。 我当前的流量:

  • 执行发现

  • 使用OpenID和OAuth参数将用户重定向到提供程序(如:
    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/

  • 一旦用户成功验证并批准了权限请求,应用程序将返回到我指定的callbackurl long,其字符串类似于上述请求,我从“openid.ext2.request\u token”中提取授权令牌,然后通过传递它来获取访问令牌

  • 然而,对于一个特定的用户帐户,在成功的身份验证和权限授予之后,google并没有像上面所说的那样传递结果,而是重定向到某个URL
    https://accounts.google.com/o/openid2/approval?xsrfsign=AC9jObYAAAAATpF6x6S6Ac7MfHaZ
    ,然后返回到我的应用程序,查询字符串中没有任何参数

    同样的代码也适用于其他帐户。我无法确定一个帐户可以有什么特殊功能(除了我上个月刚刚创建的帐户)。请注意,只有当我将picasa包括在范围内时才会发生这种情况。如果我排除picasa,它就可以工作


    请对此提供帮助。

    通过添加请求令牌请求,解决了此问题。奇怪的是,对于大多数帐户,它在没有此请求的情况下工作。但是对于创建的新帐户,我必须在请求中显式设置此参数。设置此参数后,我没有将用户重定向到xsrfsign..URL,而是获得了用户详细信息和请求令牌