我想使用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 protected]',
'password': 'testtest',
'_token': csrf_token,
}
r = requests.post(URL + '/login', data=payload)
print(r)
但这个不幸的是只返回一个错误419。因此,似乎有什么不对的CSRF令牌?但我无法理解什么错误,饼干应.sessions()
进行管理,我提取从登录表单的CSRF令牌,并把它作为参数去后的数据。所以,缺什么?
你应该送曲奇您的要求,如:
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 protected]',
'password': 'testtest',
'_token': csrf_token,
}
r = requests.post(URL + '/login', data=payload, cookies=cookies)
print(r.text)