【问题标题】:Overriding django authentication with Django rest framework authentication使用 Django rest 框架身份验证覆盖 django 身份验证
【发布时间】:2015-02-10 14:20:05
【问题描述】:

我需要访问 djangorestframework api,但因为 django 服务器使用 CSRF 令牌,我无法通过它。如何配置 djangorestframework 以覆盖 djangorestframework 而不会被重定向到登录?

我是新手,所以我需要帮助。

访问 django rest 框架将是一个纯 python 程序,它在客户端 pc 收集数据的后台运行,因此我需要使用 urllib2 或为此请求。有什么想法吗?

【问题讨论】:

  • 你想要 CSRF。因此,了解如何生成令牌,创建交付它的 REST 端点。然后在客户端在后续请求中包含该令牌。

标签: django django-rest-framework


【解决方案1】:

API 需要公开一种身份验证方法供您的客户端使用。

SessionAuthentication 样式需要 CSRF 验证,适用于基于 javascript 的客户端,在已登录应用程序的上下文中运行。如果这描述了您正在进行的客户端访问类型,请阅读CSRF and AJAX requests 上的 Django 文档,其中描述了如何将 CSRF 令牌传递给基于 javascript 的客户端。

TokenAuthentication 等其他方案不需要 CSRF 验证,无需通过任何 CSRF 令牌即可成功验证。

确保您了解 API 支持的方案并选择正确的方案用于您的客户端访问。

有关详细信息,请参阅authentication documentation。

【讨论】:

  • 嗨 @Tom,我正在寻找一个使用 DRF 实现 TokenAuthentication 的好例子,你知道吗?
猜你喜欢
  • 2013-06-29
  • 2017-09-26
  • 2017-11-02
  • 2019-03-01
  • 2021-12-21
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 2023-03-16
相关资源
最近更新 更多