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

如何为Postman或Insomnia配置SANCTUM_STATEFUL_DOMAINS环境变量

解决思路

方案1:调整Sanctum的域名匹配规则

  • 打开config/sanctum.php,找到stateful配置项,默认逻辑是判断请求域名是否完全匹配SANCTUM_STATEFUL_DOMAINS列表里的域名:端口格式,你可以修改匹配逻辑,本地开发阶段忽略端口校验,参考配置:
// 原默认配置
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
    '%s%s',
    'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
    env('APP_URL') ? ','.parse_url(env('APP_URL'), PHP_URL_HOST) : ''
))),

// 修改为本地开发忽略端口的配置
'stateful' => env('APP_ENV') === 'local'
    ? [parse_url(env('APP_URL'), PHP_URL_HOST), 'localhost', '127.0.0.1']
    : explode(',', env('SANCTUM_STATEFUL_DOMAINS')),
  • 本地环境.env文件中只需配置SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1即可,所有本地端口的请求都会被识别为合法的stateful请求。

方案2:手动固定测试工具的请求源信息

  • Postman/Insomnia不会强制使用随机端口,你可以在请求头中手动添加Origin字段,值为你已经配置在SANCTUM_STATEFUL_DOMAINS里的标准地址,比如Origin: http://localhost:3000,覆盖工具自动生成的带随机端口的Origin头即可,不需要修改后端配置。
  • 测试CSRF验证流程时,先发送GET请求到/sanctum/csrf-cookie接口获取CSRF Cookie,后续请求会自动携带该Cookie和你配置的Origin头,即可正常通过身份校验。

方案3:测试阶段临时使用Token校验

  • 如果你只需调试接口功能、不需要验证CSRF流程,可以给测试账号生成一个Sanctum Token,在请求头中添加Authorization: Bearer <生成的token>,Sanctum会优先走Token校验逻辑,自动跳过Stateful域名和CSRF校验。

注意:方案1、方案3仅允许在本地开发环境使用,生产环境必须严格配置SANCTUM_STATEFUL_DOMAINS的完整域名端口,禁止忽略端口校验,避免产生安全漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:57:02