4

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

  1. 用户点击“使用 Google 登录”
  2. 我的服务器使用 OpenID 登录用户。通过联合登录,我会收到一个 OAuth 请求令牌。

https://developers.google.com/accounts/docs/OpenID#oauth它说下一步是将请求令牌交换为访问令牌。但是,我看到了一些问题:

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

谢谢你的帮助!

4

1 回答 1

7

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

这也称为 OpenID Connect。

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

之后,您拨打电话以获取详细的个人资料信息,例如姓名+电子邮件等。

您可以通过这个出色的演示了解更多关于它如何工作的信息:http: //oauthssodemo.appspot.com/

于 2012-05-16T18:26:22.923 回答