我对OpenID OAuth的东西有点困惑。( OAuth -我指的是OAuth 2.0和更高版本)
我的目标是创建一个带有OpenID (或OAuth) auth以及遗留电子邮件+密码auth的站点。该网站将在django框架上。(python)我理解OAuth和OpenID之间的区别,以及授权和身份验证之间的区别。
我的主要目标是用google作为身份提供者来实现openid登录。
登录和注册流必须像许多站点一样。如我所见:
注册场景:
1)用户输入openid url (单击google按钮)
2)用户被重定向到auth提供商( google )页面:“很棒的网站”要求您:电子邮件,语言,国家.
用户同意..。获取在幕后重定向“令人讨厌的站点”,使用访问令牌重试电子邮件语言和其他用户信息。
4)用户填写配置文件中所需的其他内容。就这样..。他现在注册了。
登录场景:
1)用户输入openid url (单击google按钮)
1.a)如果用户已经登录了auth提供商嗯.我不清楚..。但是用户在不显示提供程序页面的情况下就登录了(也许它关闭得很快?)
1.b)如果用户未登录提供商,则提供者将显示登录页面,并在成功后重定向到令人敬畏的站点。
因为我必须获取一些用户数据,所以我似乎不得不使用: OAuth或混合( OpenID + OAuth扩展)协议。
对我来说不清楚的事情:
So which one to choose ? 发布于 2015-07-11 07:10:20
在我看来,OpenID和OAuth 2.0是两个不同的概念。
似乎你希望你自己的网站能够自己处理用户授权,这意味着在OAuth 2.0领域,你自己的网站是一个AuthorizationServer。
对你的问题:
发布于 2011-05-03 14:22:10
为什么不直接使用这个库,这就完成了与开放id提供程序集成的所有艰苦工作。
您可以使用SocialAuth或具有类似功能的任何其他auth软件包之一。
发布于 2019-08-21 15:55:16
我建议不要使用Google或Facebook (甚至是最糟糕的Twitter)来测试OAuth/OpenID登录,因为它们的设置很混乱,范围没有明确的文档,甚至需要在本地进行测试。相反,我建议使用Github,因为它对开发人员更友好。SimpleLogin也是一个很好的选择(免责声明:我是SimpleLogin创始人),因为在默认的本地主机上,它是白名单,以促进本地开发。它的文档在https://docs.simplelogin.io上。
如果您想了解关于OAuth/OpenID的更多信息,我认为最好自己实现重定向和回调。稍后,更好的方法是使用库来处理这个问题,因为它们更严格地遵循协议。对于Django来说,关于这个主题的一篇很好的文章是https://scotch.io/tutorials/django-authentication-with-facebook-instagram-and-linkedin。
https://stackoverflow.com/questions/5870774
复制相似问题