使用OAuth2进行Django Rest Framework身份验证

Fel*_* D. 5 django rest facebook django-rest-framework python-social-auth

假设我想构建一个使用RESTful API作为后端的iOS应用程序.

我想要使​​用Django Rest Framework.原因有三:

  1. Python太棒了
  2. Django太棒了
  3. Django Rest Framework很受欢迎且文档齐全

我的应用需要对用户进行身份验证,以控制对不同API端点的访问.我需要通过验证我的客户

  • 我自己的OAuth2提供商
  • 第三方OAuth2提供商(例如Facebook)

我发现Django Oauth Toolkit是创建自己的OAuth2提供程序的事实标准.与Django Rest Framework的集成也很好地记录并且易于实现.

到现在为止还挺好.

现在如果我想通过第三方添加注册/登录?(Facebook,Twitter等).

我猜这是过程的样子.

通过第三方提供商进行身份验证

没有第三方

通过自己的OAuth提供商进行身份验证

我想我需要将社交帐户令牌添加到用户模型(用于重新验证和与第三方APIS交互).Django-allauth这样做,我在我的一个项目中使用它,但遗憾的是django-allauth似乎不适合当前的用例,因为Django不提供客户端.

那么有一种方法(一个应用程序)可以轻松地将社交媒体登录/注册与Django Rest Framework和Django OAuth Toolkit集成吗?我遇到了Python Social Auth,但我不确定如何将它与Django Oauth Toolkit混合使用.

我在正确的道路上吗?

您将如何使用Django实现这样的身份验证体系结构/进程?

谢谢