You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter测试Laravel应用登录时419错误排查求助

JMeter测试Laravel登录持续遇到419错误求助

问题背景

尝试用JMeter实现Laravel应用登录已近一周,始终触发419状态码,推测问题与XSRF Token验证相关。

已完成的配置操作

  • 修改user.properties文件,添加配置:CookieManager.save.cookies=true
  • 在获取登录页面的GET请求(Login Get)下添加正则表达式提取器:
    • 提取范围:响应头
    • 变量名:xsrf_token
    • 正则表达式:XSRF-TOKEN=([^;]+)
    • 模板:$1$
    • 匹配编号:1
    • 默认值:Not Found
  • 测试计划中配置HTTP Cookie管理器:
    • 勾选「Use Thread Group」
    • 取消勾选「clear cookies each iteration」
  • 在Login Get的HTTP Header管理器中设置:
    • Name: X-XSRF-TOKEN
    • Value: ${xsrf_token}
  • Login Post请求的请求头配置如图(注:原问题提及配图,此处保留说明)

补充问题

请问以下Set-Cookie中的XSRF-TOKEN格式是否正确?

XSRF-TOKEN=eyJpdiI6ImVteVcyTnhUdHY2ZjdsWmZZYjBiQ3c9PSIsInZhbHVlIjoiZUM5dXpEMEY4YVc2S2RXZlh6anl2MGZoNGMrMkZ5RkVITExlSXcSasVEeDV3dE40VVVxOUdtOFN0Y2M3bW04ZEI5dytISFVNT0VwenhHVm9lUUJQelg0R01VbUlCRGdGMGZBckRFSzNwcDF5RktVVkZuRUpqWEdHa2tEVk0iLCJtYWMiOiJlZWM4ZjcxMTc3NWRlOWE2YmQ1MWE0N2Y2OTgzNzU4YWJhMmNmMWU5MDQ2MTZiMjI5OTEzMTA2NGE4OAFkZjJiIiwidGFnIjoiIn0%3D; expires=Wed, 12 Feb 2025 18:32:45 GMT; Max-Age=7200; path=/; samesite=lax

排查与解决建议

  1. 先确认Token提取是否生效

    • 添加「查看结果树」组件,检查Login Get的响应头里是否存在XSRF-TOKEN,同时查看正则表达式提取器的输出,确认xsrf_token变量拿到的是有效内容,而非默认的Not Found
    • 注意:Laravel返回的XSRF-TOKEN是URL编码过的,提取出来的${xsrf_token}会包含%3D这类编码字符,直接使用即可,无需额外解码,后端会自动处理
  2. 检查Cookie管理器的配置是否生效

    • 确认HTTP Cookie管理器已正确关联线程组,且未开启“每次迭代清除Cookie”——Laravel需要laravel_session会话Cookie与XSRF Token配对才能通过验证,Cookie丢失必然触发419错误
    • 查看Cookie管理器中的Cookie列表,确保XSRF-TOKEN和laravel_session都被正确保存
  3. 调整请求头的配置位置

    • Login Get请求不需要添加X-XSRF-TOKEN头,这个头应该配置在Login Post请求的HTTP Header管理器中
    • Get请求的作用仅为获取登录页面及Cookie,Post提交登录请求时才需要携带X-XSRF-TOKEN头完成验证
  4. 关于XSRF-TOKEN格式的问题

    • 你给出的XSRF-TOKEN格式是正确的,这是Laravel生成的标准加密Token:将包含iv、value、mac、tag等字段的JSON字符串进行base64编码后的结果,末尾的%3D是=的URL编码,属于正常情况
  5. 额外排查方向

    • 确保JMeter的请求顺序与真实用户行为一致:Login Get之后立即发送Login Post,避免间隔过久导致会话超时
    • 检查Laravel应用的config/session.php配置,确认same_site设置与Set-Cookie中的samesite=lax匹配
    • 可以尝试用「CSS/JQuery提取器」替代正则表达式提取器,从登录页面的HTML中提取meta[name="csrf-token"]的content值,将该值作为X-XSRF-TOKEN的内容发送请求,这种方式有时比提取Cookie更可靠

内容的提问来源于stack exchange,提问作者BootCamp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:20:57