csrf_exempt如何在django中运行?

时间:2017-08-29 05:05:43

标签: javascript django post csrf http-status-code-403

我有一台运行在JavaScript上的服务器试图将用户名和密码发布到另一个运行django的网页上。我知道django要求你包含csrf令牌。我控制了服务器和代码,我想要实现的不是手动输入用户名和密码,我想使用JavaScript发布django。

假设django登录页面为“https://mayan/authentication/login/?next=/”,它有用户名密码文本框和提交按钮。因为我的JavaScript服务器上没有csrftoken,所以我选择禁用csrf令牌。在“urls.py”中,网址格式

url(r'^login/$', csrf_exempt(login_view), name='login_view')

我的理解是这会免除登录页面的csrf身份验证吗?但我需要能够使用post登录,

$.post({
  url:"https://mayan/authentication/login/",
  data:"username=admin&password=mypassword&next=/",
});

我发错了吗?还是我错误地豁免了csrf?因为我一直收到http状态码403 Forbidden。

编辑:

在我的login_view中,它从另一个视图调用方法登录,login方法也调用其他函数。我需要在“def login”之前添加“@csrf_exempt”,还是需要将其添加到每个函数中?将csrf_exempt添加到登录方法就足够了吗?

0 个答案:

没有答案