如何在第三方应用程序中使用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)
我正在尝试在其他应用程序中检查对 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)