2015-09-29 118 views
0

我想檢查在其他應用程序中驗證django的用戶。其實我運行這個腳本:如何在第三方應用程序中使用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身份驗證?

回答

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) 
相關問題