这个问题在这里已经有了答案:10 年前关闭。
可能重复:OpenID 和 OAuth 有什么区别?
OpenID 和 oAuth 之间的真正区别是什么?它们在我看来是一样的。
我应该澄清一下,我打算在drupal中使用它们,如果这有什么不同的话。所以我想我受到drupal中可用的任何模块实现的约束。
OpenID 是一种为多个站点指定一个身份的方法,因此您无需一遍又一遍地注册。
OAuth 是一种允许一个应用程序访问一个帐户而不向该应用程序提供您的帐户登录信息的方法。您可以结合使用它们。
更多信息:OAuth-OpenID: You’re Barking Up the Wrong Tree if you Think They’re the Same Thing
如果您在网站上有一个帐户(带有一些私人资源),您可以使用用户名/密码对登录。如果应用程序想要获取一些私有资源,并且您不想向他们提供您的用户名/密码,请使用 OAuth。
但是,如果您想使用唯一帐户登录多个网站,请使用 OpenID。
(有些网站像 OpenID 一样使用 OAuth,如果您的 OpenID 帐户中有一些私人内容,则可以像 OAuth 一样使用 OpenID)
OpenID = 使用来自 OpenID 提供商(Google)的登录凭据登录到另一个应用程序(堆栈溢出)
OAuth = 允许应用程序 (TwitPic) 代表您操作并访问您使用的应用程序 (Twitter) 的信息。
它们可以相互结合使用。
OpenID 纯粹*用于使用一组凭据的多站点身份验证。
OAuth 是为了让应用程序安全地相互访问:数据共享。将其视为在两件事之间建立信任纽带,例如允许您的 flickr 帐户在您的 facebook 墙上发布内容或将您的 flickr 照片连接到第三方打印网站。
OAuth 不仅仅是站点到站点。您可以在没有真正“身份”概念的桌面应用程序中链接到像 Facebook 或 twitter 这样的身份驱动网站(例如,twitter 客户端能够发布到您的提要,而无需存储您的登录详细信息)。
有相似之处,但 OAuth 实际上是关于服务到服务的链接。
OpenID 是关于使用一个用户名对许多站点进行身份验证。 OAuth 是关于授权的——站点 A 有权调用站点 B 的 api。
这是另一篇解释差异的好文章/类比:http://www.dotnetopenauth.net/about/about-oauth/
site A has permission to call site B's api.
这为我清除了它。万分感谢。