使用Python请求登录到laravel应用

问题描述 投票:3回答:1

我想使用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令牌,并把它作为参数去后的数据。所以,缺什么?

python laravel login python-requests
1个回答
3
投票

你应该送曲奇您的要求,如:

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)
© www.soinside.com 2019 - 2024. All rights reserved.