记录一次 header 参数格式引发的错误

语言:PHP

框架:Laravel 6.18.10

接口在本地运行正常,部署到服务器,却一直提示登录失效。

排查错误:

1、代码是 git 拉取的,核对分支,再次 pull ,没有问题。

2、核对配置文件配置(配置文件 .env 未提交代码仓库),没有问题。

3、在判断登录中间件打断点,发现没有获取到 header 里面的 auth_token.

4、修改 web 服务器 Apache 配置文件,允许请求头传递 auth_token 参数,问题没有解决。

5、修改参数名为 auth-token ,问题解决。

原因:

http请求头header参数中含有下划线“_”不能正常传递( web 服务器默认禁止使用下划线“_”,因为 CGI 历史遗留问题:下划线和中划线都为会被映射为 CGI 系统变量名中的下划线,这样容易引起混淆。)

Enjoy it !

原文地址:https://www.cnblogs.com/daizhongxing/p/13826755.html