我想使用python请求登录Laravel应用并在登录后获取首页的内容,我尝试过:
import requests
import re
URL = 'laravelapp.url'
session = requests.session()
front = session.get(URL)
csrf_token = re.findall(r'<input type="hidden" name="_token" value="(.*)"',front.text)[0]
print(csrf_token)
print(session.cookies['XSRF-TOKEN'])
payload = {
'email': 'email@example.com','password': 'testtest','_token': csrf_token,}
r = requests.post(URL + '/login',data=payload)
print(r)
不幸的是,这仅返回419错误.因此,csrf令牌似乎有问题吗?但是我无法理解出了什么问题,cookie应该由.sessions()管理,我从登录表单中提取了csrf令牌并将其作为参数添加到发布数据中.那么,缺少了什么呢?
最佳答案
您应该将Cookie与您的请求一起发送,如下所示:
原文链接:https://www.f2er.com/python/533099.htmlimport requests
import re
URL = 'laravelapp.url'
session = requests.session()
front = session.get(URL)
csrf_token = re.findall(r'<input type="hidden" name="_token" value="(.*)"',front.text)[0]
cookies = session.cookies
payload = {
'email': 'email@example.com',data=payload,cookies=cookies)
print(r.text)