如何在第三方应用程序中使用django autentication?

时间:2015-09-29 05:55:08

标签: django csrf

我试图在其他应用中检查验证django的用户。其实我运行这个脚本:

import requests
import urllib2

main_page = urllib2.urlopen("http://myurl.com/login").read()
csrf = main_page.split("csrfmiddlewaretoken' value='")[1].split("'")[0]


r = requests.post("http://myurl.com/login", data={u'username': u'admin', u'password': u'admin', 'csrfmiddlewaretoken': csrf })

print(r.status_code, r.reason, r.text)

但是我收到了csrf错误。我想要的是检查用户在其他应用程序中输入的登录参数是否存在于django的数据库中。我该怎么办?

在第三方应用中是否还有其他方法可以使用django身份验证?

1 个答案:

答案 0 :(得分:2)

有很多可能是实现目标的更好方法,但为了让您的代码按照您想要的方式运行,您还需要发送Django期望与页面上的令牌匹配的CSRF cookie。

import requests

main_page_request = requests.get("http://127.0.0.1:8000/admin/login/")
csrf_cookie = main_page_request.cookies.get("csrftoken", "")

r = requests.post("http://127.0.0.1:8000/admin/login/", data={u'username': u'admin', u'password': u'admin', 'csrfmiddlewaretoken': csrf_cookie }, cookies={'csrftoken': csrf_cookie})

print(r.status_code, r.reason, r.text)