我试图在其他应用中检查验证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身份验证?
答案 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)