googleopenid和Oauth

googleopenid和Oauth,oauth,oauth-2.0,google-openid,Oauth,Oauth 2.0,Google Openid,我们有通过google混合Openid(Openid+OAuth1[0])协议进行身份验证的用户。要使用来自google的较新API,我们必须更改为基于oauth2的身份验证。有没有办法在oauth2登录后知道他是否是我们的openid用户之一 ID看起来很不一样。google_oauth2中的用户ID如下所示: 12345678901234567890 https://www.google.com/accounts/o8/id?id=AItOawnlIGFin5I0F059UdqSYbK9J

我们有通过google混合Openid(Openid+OAuth1[0])协议进行身份验证的用户。要使用来自google的较新API,我们必须更改为基于oauth2的身份验证。有没有办法在oauth2登录后知道他是否是我们的openid用户之一

ID看起来很不一样。google_oauth2中的用户ID如下所示:

12345678901234567890
https://www.google.com/accounts/o8/id?id=AItOawnlIGFin5I0F059UdqSYbK9JmA99e99ms
google hybrid中的用户ID如下所示:

12345678901234567890
https://www.google.com/accounts/o8/id?id=AItOawnlIGFin5I0F059UdqSYbK9JmA99e99ms
有什么方法可以把这些结合起来吗?我是否可以通过基于oauth的调用来检索这样一个openid用户ID?由于我们使用它登录的目的,我不想把2谷歌登录按钮登录页面。我很难想象我们的用户会理解这一点

是否有解决此类问题的共同战略


[0]

谷歌谈论的是一种可以满足您需求的解决方案。但是,文档中的所有链接都指向OAuth 1.0。因此,您需要进行调查,以确保它与OAuth 2.0兼容,因为Google不推荐OAuth 1.0接口。

好的,看来我有办法做到这一点。必须实施和检查,但理论上应该是这样:

send user to oauth2 login 
    -> if known, log him in
    -> if unknown send him to openid with immediate mode
          -> if successfull log him in, associate the former oauth connection
          -> if error the user is unknown and will be created with his oauth token

如果用户没有使用谷歌登录,即时模式也可能会失败,但由于他刚从oauth2舞蹈中回来,他必须在这段时间内登录,这是非常不可能的,因为他会立即被重定向。

Hi,这是我们目前正在做的。但这是oauth1,较新的API需要OAuth2。