Google联合登录(OpenID + OAuth 2)

时间:2012-05-16 18:07:20

标签: oauth openid google-api oauth-2.0

我正在尝试让OpenID使用OAuth 2来使用Google的API。我只希望用户在第一次登录时必须“授予访问权限”。这是我到目前为止的流程:

  1. 用户点击“使用Google登录”
  2. 我的服务器使用OpenID登录User。使用联合登录时,我会收到OAuth请求令牌。
  3. https://developers.google.com/accounts/docs/OpenID#oauth开始,它表示下一步是交换请求令牌以获取访问令牌。但是,我发现了一些问题:

    1. 这是一个OAuth 1 API调用。
    2. 需要验证者。我不需要用户“授予访问权限”来接收验证者吗?这是如何联合的?
    3. 感谢您的帮助!

1 个答案:

答案 0 :(得分:7)

您应该使用基于OAuth 2.0的身份验证: https://developers.google.com/accounts/docs/OAuth2Login

这也称为OpenID Connect。

这将使用授权码重定向到您的网站。然后,您将其替换为访问令牌。您可以通过使用简单的REST请求调用TokenInfo端点来validate访问令牌。这将为您提供一个简单的用户标识符。

之后,您拨打电话以获取详细的profile information,例如姓名+电子邮件等。

您可以通过这个精彩的演示了解有关它的工作原理的更多信息: http://oauthssodemo.appspot.com/