【问题标题】:Which authentication to be used when using Django Rest Framework and IOS app?使用 Django Rest Framework 和 IOS 应用程序时要使用哪种身份验证?
【发布时间】:2015-03-15 20:32:51
【问题描述】:

我有一个 iOS 应用程序,它使用由 Django REST 框架提供支持的 API 来存储、更新和从数据库中获取数据。我需要提供以下两个在服务器上存储用户数据的功能:

  1. 使用邮箱登录
  2. 用 Facebook 登录

我可以使用两种不同的身份验证系统:

  1. Django User Authentication System
  2. Django Rest Framework Authentication

我应该如何在我的 API 中处理这个问题?

【问题讨论】:

  • 使用 Django Rest 框架身份验证
  • 谢谢! DRF 身份验证非常简单,然后 Django 用户身份验证。易于学习:)

标签: python ios django django-rest-framework


【解决方案1】:

当您在 iOS 中使用 Django REST 框架时,除非您使用浏览器,否则标准的 Django 身份验证系统是不可能的。这通过 DRF authentication system as SessionAuthentication 公开,它依赖于您的应用程序能够随请求传输 cookie 和 CSRF 令牌,这通常是不可能的。

在大多数情况下,您已经在使用 Django 身份验证系统,并且您可以信任存储密码的应用程序,您可以使用 use something like BasicAuthentiction。大多数人不能,或者他们不信任他们的应用程序生态系统,所以他们使用基于令牌的身份验证系统like TokenAuthenticationOAuth2Authorization(组合with an OAuth provider)。您可以阅读有关每种身份验证类型的更多信息in this answer on Stack Overflow

但在您的情况,您基本上只能使用OAuth 2 之类的东西。这是因为您需要将用户与令牌相关联,并且大多数身份验证系统都要求您提供用户名和密码。对于社交帐户,通常情况并非如此,他们通常无法登录。OAuth 2 与标准 Django 登录结合使用,因此您不仅限于用户名和密码。我在this detailed Stack Overflow answer 中写了更多关于它是如何工作的。

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2019-02-10
    • 2017-06-05
    • 2019-04-02
    • 2019-10-19
    • 2016-08-06
    相关资源
    最近更新 更多