OpenID 与 Oauth(v1 & v2) 有何不同?

发布于 2024-12-03 11:32:24 字数 351 浏览 2 评论 0原文

我注意到所有大型网站都使用 Openid 而不是 Oauth

我为 GoogleFacebook 实现了 oauth

我的要求:

  • 使用 Google / Facebook 对用户进行身份验证
  • 管理我网站上用户的简单用户配置文件,从 Google/Facebook 预先填充。

我应该选择什么 OauthOpenid

何时遵循oauth

I have noticed that all the big websites are using Openid instead of Oauth.

I have my implementation of oauth for both Google and Facebook.

My requirement :

  • Authenticate the users with Google / Facebook
  • Manage simple user profiles for the users on my website, pre-populated from Google/Facebook.

What should I go for Oauth or Openid ?

When to follow oauth ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南渊 2024-12-10 11:32:24

它们用于不同的目标。

OpenID 用于验证您网站上的SomeUser,向其他网站询问用户身份的证明。

OAuth 用于授予 SomeOtherParty(例如其他网站或应用程序)代表 SomeUser 在您的网站上执行某些操作(这意味着 SomeUser > 已经在您的网站上以某种方式进行了身份验证)。

对于作者的请求,还有一些评论:

您不能选择“OAuth 对用户进行身份验证”,因为 OAuth 不是用户身份验证协议(尽管其名称中包含“auth”)。

借助 OpenID,您几乎可以使用任何 OpenID 提供商对用户进行身份验证,而无需对代码进行任何修改。

如果您选择使用 Facebook OAuth 对用户进行身份验证,那么您实际上并未对用户进行身份验证。您要求用户让您的应用程序访问 Facebook 上的用户个人资料。您正在访问 Facebook 服务来获取用户信息。这意味着,如果您想使用另一个 OAuth 提供程序服务来对用户进行身份验证,则在不编写新的“身份验证”代码的情况下您将永远无法做到这一点(除了新提供商支持与 facebook 相同的 API 的情况)。

They are used for different goals.

OpenID is used to authenticate SomeUser on your site, asking some other site for the proof of the user's identity.

OAuth is used to grant SomeOtherParty (e.g. other site or application) a permission to do something on behalf of SomeUser on your site (this implies that SomeUser is already somehow authenticated on your site).

Some more comments, for the author's request:

You cannot choose "OAuth to authenticate users", since OAuth is not a user authentication protocol (despite the 'auth' in its name).

With OpenID you can authenticate a user with virtually any OpenID provider without any modifications to your code.

If you choose to authenticate users using Facebook OAuth, you are not actually authenticating users. You are asking users to get your application some access to user's profile on the facebook. You are accessing Facebook services to fetch user information. This means, that if you want to use another OAuth provider service to authenticate users, you will never be able to do it without writing new "authentication" code (except for the case when the new providers supports APIs identical to facebook).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文