我正在开发一个基于 Web 的项目,在该项目中我们使用用户的 Google 提要,并将有关它们的一些信息存储在我们的数据库中。我们不想让用户在我们这里创建帐户,而是让他们使用他们的 Google 凭据登录。我很清楚我们需要 OAuth,但我想知道 OpenID 部分。是否有关于我们可以通过 OAuth 访问的用户的唯一可识别信息,以在我们端跟踪他们跨 session 的数据?如果是这样,使用 OpenID 有什么好处?

最佳答案

OpenID 和 OAuth(理论上如果不是在实践中)用于两个独立的功能:

OpenID 是管理身份和最小化帐户创建的方法。示例:无论我走到哪里,我都想使用我的 Google 帐户登录。

OAuth 是一种以受控但开放/可互操作的方式共享用户信息的方法。示例:我希望允许 Twitter 访问我的 Google 联系人,而不必向 Twitter 提供我的 Google 用户名和密码。

这意味着对于登录情况,您需要 OpenID。如果您需要访问用户数据,则需要 OAuth。一些服务,例如 Twitter,已经选择通过 OAuth 进行登录,但这更像是对协议(protocol)的滥用。

然而,现在真正很酷的是,一些提供商开始混合 OpenID + OAuth,以便帐户登录和信息共享授权可以在一个步骤中完成,而不是多个步骤。谷歌是这个领域的领导者之一。您可以查看 this Google blog post 以全面了解他们正在创建的内容。

希望这会有所帮助,并让您更好地了解您在寻找什么。

关于openid - 我需要使用 OpenID 还是 OAuth 就足够了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3087558/

10-12 04:11
查看更多