做接口服务时候。有些场景会使用header 来传递参数。 查看官网文档说明
数据来源 source
指定当前单个参数的数据来源,可以是post、get、cookie、server、request、header、或其他自定义来源。未指定时,默认为统一数据源。
目前支持的source与对应的数据源映射关系如下:
本次我使用header 时 ,发现 一直校验失败。过程如下
1 ./config/app.php 里边 apiCommonRules 设置应用层统一参数
'apiCommonRules' => array( //签名 'sign' => array( 'name' => 'sign', 'require' => true,"source"=>'header', ), ),
报错:
排查过程:
1 打开文件 ./vendor/phalapi/kernal/src/Request.php
打断点, 通过比对 $data 和 $rule , 发现 大小写问题。
查看底层代码
./vendor/phalapi/kernal/src/Request.php
./vendor/phalapi/kernal/src/Request/Parser.php
发现。这是PHP 接收 header 时候。首字母都会是大写
解决办法:
./config/app.php 里边 name 值首字母改为大写 即可
'apiCommonRules' => array( // //签名 'sign' => array( 'name' => 'Sign', 'require' => true,"source"=>'header', ), ),
验证:
成功 !