如何在第三方应用程序中使用django 身份验证?

How to use django autentication in third-party app?

我正在尝试在其他应用程序中检查对 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认证?

很可能有更好的方法来实现您的目标,但要让您的代码按您想要的方式工作,您还需要发送 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)