博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
API开发之接口安全(二)-----sign校验
阅读量:4921 次
发布时间:2019-06-11

本文共 1668 字,大约阅读时间需要 5 分钟。

上一章 我们说了 sign的生成 那么 我们如何确定这个sign的准确性呢 下来 我们说说 校验sign的那些事

在拿到header里面的内容之后 我们首先需要对其内容的基本参数做一个校验 我们补充下Common类的代码 

checkRequestAuth(); } public function checkRequestAuth(){ $header = request()->header(); ##判断header中基础参数 if(empty($header['sign'])){ throw new ApiException('sign不存在',400); } if(!in_array($header['app_type'],config("app.app_types"))){ throw new ApiException('app_type不合法',400); } }}

判定基础参数之后 我们就要进入正题了 校验sign 那么在鉴权类 IAuth 里面新增 checkSignPass 方法 校验sign

/**     * 校验SIGN是否正常     * @param $data     */    public static function checkSignPass($data){
      ##解密 $str = (new Aes())->decrypt($data['sign']); if(empty($str)){ return false; }       ##转换为数组 parse_str($str,$arr);       ##判定条件根据需求可增加 if(!is_array($arr) || empty($arr['did']) || $arr['did'] != $data['did']){ return false; } return true; }

方法添加完成后 我们需要在Common里面进行校验

checkRequestAuth(); } public function checkRequestAuth(){ $header = request()->header(); ##判断header中基础参数 if(empty($header['sign'])){ throw new ApiException('sign不存在',400); } if(!in_array($header['apptype'],config("app.app_types"))){ throw new ApiException('app_type不合法',400); }      ##调用鉴权类校验sign的准确性 if(!IAuth::checkSignPass($header)){ throw new ApiException('授权码sign失败',401); }       ##如果校验通过 将header值存起来 方便后面使用 $this->header = $header; }}

到这里 sign基本就校验完毕 后面只需要业务逻辑类 继承Common类就可以啦  当然 还有一些细节需要我们处理  下一章 我们再来进行

转载于:https://www.cnblogs.com/we-jack/p/11359159.html

你可能感兴趣的文章
【译 】Solr in Action 第一章
查看>>
计算几何初步模板
查看>>
POJ 数据结构(2)
查看>>
HDU 3869 Color the Simple Cycle (Polya计数法)
查看>>
String字符串常用方法
查看>>
猴子们的研究
查看>>
[Python]小甲鱼Python视频第027课(集合:在我的世界里,你就是唯一)课后题及参考解答...
查看>>
sed
查看>>
关系数据库-----SQL标准语言
查看>>
java设计模式----中介模式
查看>>
常用通用JS函数
查看>>
第一章 读后心得体会
查看>>
windows下命令行cmder工具
查看>>
【深度学习大讲堂】首期第一讲:人工智能的ABCDE 第二部分:简谈当前AI技术与发展趋势...
查看>>
pandas 3 设置值
查看>>
pip无法更新
查看>>
vue-12-element组件库
查看>>
尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
查看>>
安装oracle后登录时出现 ERROR: ORA-01031 insufficient privileges
查看>>
HOME键窥探Android的Activity生命周期
查看>>