使用python请求登录laravel应用

我想使用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与您的请求一起发送,如下所示:

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]

cookies = session.cookies

payload = {
    'email': 'email@example.com',data=payload,cookies=cookies)

print(r.text)

相关文章

在前一篇博客中我们介绍了加侧旋的乒乓球弧圈技术的模拟,本...
在近期conda的版本更新中,有可能会删除路径下的_sysconfigd...
本文主要展示了一些lambda表达式的使用示例,通过这些示例,...
本文通过对比Jax和Numpy计算Normalized Hamming Distance的过...
我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比...
Numpy这个库在Python编程中非常的常用,不仅在性能上补足了P...