在Django Rest Framework + Django Social Auth中与Facebook联系

时间:2014-04-02 13:16:37

标签: django facebook django-rest-framework django-socialauth

我正在使用Django Social Auth来解决与Facebook问题的关联问题。 我使用Django Rest Framework为我的django应用开发了一个API。但我对使用Django Social Auth和Django Rest Framework for ios设备感到困惑。 我搜索了1234,但它们通常都是角度js。 我不熟悉ios开发。
facebook与spa和移动设备有什么不同?我怎么能一起使用这些包? 我可以从django-social-auth迁移到python-social-auth吗?

提前致谢

3 个答案:

答案 0 :(得分:15)

现在,您可以使用此库https://github.com/PhilipGarnero/django-rest-framework-social-oauth2使用来自任何python-social-auth后端(Facebook,Google,Github等)的持有令牌/第三方访问令牌,针对您的django-rest-framework对您的用户进行身份验证

该模块为django-rest-framework提供了python-social-auth和oauth2支持。因此,这为您节省了大量时间来设置使用社交授权获得DRF以及OAuth2安全所需的内容。

答案 1 :(得分:8)

我认为您可以使用django rest frameworkdjango-rest-authallauth来实现这一目标。 这三个人在一起工作很好。

答案 2 :(得分:5)

建议您让python-social-auth为您处理Facebook登录,而是使用另一个用于Django REST Framework的OAuth插件来验证Django。这还有通过标准Django身份验证系统支持非Facebook登录的额外好处。

  

我对使用Django Social Auth和Django Rest Framework for ios设备感到困惑。

我最近answered a similar question关于使用python-social-auth和Django REST Framework实现身份验证。它包含了一些重要的要点,可以在使用第三方实施身份验证时阅读,以及一些关于您不应该将第三方OAuth令牌传递回客户端的重要说明

  

我怎么能一起使用这些包?

虽然该答案明确提到使用OAuth作为python-social-auth后面的API的身份验证方法,但您可以使用内部使用Django身份验证系统的其他身份验证方法,例如TokenAuthentication。在任何情况下,您最终都会使用后端API代理前端应用程序与第三方身份验证提供程序之间的身份验证。

  

facebook与spa和移动设备有什么不同?

Facebook提供与某些移动操作系统的直接集成,最值得注意的是iOSAndroid。这会绕过您的API进行身份验证,并使用Facebook直接验证您的移动应用程序。理想情况下,它将验证您的后端API而不是移动应用程序。如果您将访问令牌手动传递回API,仍然可以执行此操作,基本上执行python-social-auth将要执行的操作,但可能存在风险,可能不是值得付出额外的努力。

Facebook Connect(现在称为Facebook登录)的工作方式与Facebook集成在移动设备上的工作方式类似。可能对您有利的一个区别是,从单一页面应用程序的Facebook登录转移到基于OAuth的身份验证模式非常容易。这在Facebook开发人员文档中记录为"Manually Building a Login Flow",并与支持基于OAuth的登录的库兼容,如python-social-auth

  

我可以从django-social-auth迁移到python-social-auth吗?

这不应该是一个问题,因为python-social-auth已经有效地取代了django-social-auth