加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用python请求登录laravel应用

发布时间:2020-12-17 17:36:46 所属栏目:Python 来源:网络整理
导读:我想使用python请求登录Laravel应用并在登录后获取首页的内容,我尝试过: import requestsimport reURL = 'laravelapp.url'session = requests.session()front = session.get(URL)csrf_token = re.findall(r'input type="hidden" name="_token" value="(.*)"

我想使用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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读