Django REST框架-社交身份验证(Facebook,Twitter等)

时间:2018-08-08 13:42:18

标签: django oauth-2.0 django-rest-framework

我正在为以iOS,Android和Web应用程序为客户端的平台构建REST API。用户可以通过Django API正常注册,因此可以使用其凭据进行身份验证,也可以使用OAuth登录Facebook或Twitter帐户。

我开始使用django-rest-framework-social-oauth2来加快社交登录部分的开发。 我不了解的部分与指向服务器端Django应用的 URL回调(或 URL重定向)有关。

我应该提供什么URL回调? django-rest-framework-social-oauth2中是否已经有现成的实现视图?

还有,DRF是否有更好的软件包可用于大型项目的身份验证?

1 个答案:

答案 0 :(得分:0)

执行此操作的新方法是使用python-social-auth,因为不赞成使用django-social-auth,而建议使用python-social-auth,并且现在支持Django以外的其他框架,例如Flask,Pyramid,Web.py和龙卷风。

它还支持其他主要的身份验证提供程序,例如Microsoft,Google,Twitter,Amazon,GitHub等。

摘要;


django-all-access


django-all-access是可重复使用的应用程序,用于OAuth 1.0和OAuth 2.0提供程序(例如Twitter和Facebook)的用户注册和身份验证。

该项目的目标是简化使用这些远程API进行身份验证的工作流程。 django-all-access将为简单视图提供合理的默认值,并提供钩子以覆盖默认行为。

http://allaccess-mlavin.dotcloud.com/上运行着一个简单的演示应用程序,该应用程序的完整源代码包含在资源库中。

django-allauth


一组集成的Django应用程序,用于身份验证,注册,帐户管理以及第三方(社交)帐户身份验证。

支持的流程

  • 注册本地帐户和社交帐户
  • 将多个社交帐户连接到本地帐户
  • 断开社交帐户-如果仅保留本地帐户,则需要设置密码
  • 可选的社交帐户即时注册-无需提问
  • 电子邮件地址管理(多个电子邮件地址,设置主电子邮件地址)
  • 密码遗忘流
  • 电子邮件地址验证流程

受支持的提供商

  • Dropbox(OAuth)
  • Facebook(均为OAuth2和JS SDK)
  • Github
  • Google(OAuth2)
  • LinkedIn
  • OpenId
  • 女神花
  • SoundCloud(OAuth2)
  • 堆栈交换(OAuth2)
  • Twitch(OAuth2)
  • Twitter
  • 微博(OAuth2)

Django Social Auth


Django Social Auth是为Django项目设置社交身份验证/授权机制的简便方法。

使用来自django-twitter-oauthdjango-openid-auth的基本代码制作而成,它实现了一个公共接口来定义来自第三方的新身份验证提供程序。

受支持的提供商

  • Google OpenID
  • Google OAuth
  • Google OAuth2
  • Yahoo OpenID
  • 像myOpenID一样的OpenId
  • Twitter OAuth
  • Facebook OAuth

Django-Socialauth


它做什么

  1. 允许通过各种提供商进行登录。
  2. 从各个第三方站点导入联系人,以找出您的哪个 朋友已经在使用我们的服务。

登录

这是一个用于通过各种第三方站点启用身份验证的应用程序。 特别是它允许通过

登录
  • Twitter
  • Gmail
  • Facebook
  • Yahoo(本质上为openid)
  • OpenId

oauth2app


oauth2app模块可帮助Django站点运营商提供OAuth 2.0接口。该模块已注册为应用程序。

django-oauth


这是David Larlet的django-oauth的分叉版本。

一个非常重要的区别是该版本要求您在Django's caching framework后面运行真实的缓存。

django-oauth-access


Supported Providers

  • Twitter
  • LinkedIn
  • 雅虎
  • Facebook(使用OAuth 2.0,该功能正常,但需要做更多工作)
  • 几乎所有符合OAuth 1.0a的网站

django-oauth-consumer


一个django应用程序,提供了使用OAuth服务的基础架构。它不是用于提供OAuth服务。


也有用: