Post参数解密

由于项目对于数据保密比较严格,需要将请求参数(Post参数)及返回值都进行加密,返回值的加密已经找到办法,只要继承Response类即可,如下:
class EncryptResponse extends Response
{

/**
* @var int JSON常量组合的二进制掩码
* @see http://php.net/manual/en/json.constants.php
*/
protected $options;
private $crypt;

public function __construct($options = 0) {
$this->options = $options;
$this->addHeaders('Content-Type', 'application/json;charset=utf-8');
$this->crypt = new RSACrypt();
}

/**
* @param array $result 待返回的对象,先转换为Json字符串,然后加密。
* @return string 加密后的Json字符串
*/
protected function formatResult($result)
{
$jsonRes = json_encode($result, $this->options);
return $this->crypt->RSAEnCrypt($jsonRes);
}
}
但是对于Post参数,一直没有找到合适的地方进行解密,现在唯一找到的地方就是每个接口文件的接口方法中,但是这样比较繁琐,所有的接口都要重复一遍这个解密代码,有没有一个统一的地方,可以做参数解密的操作呢?
use PhalApi\Api;

class PostTest extends Api
{
public function getRules()
{
return array(
'getShujiaByKeyword' => array(
'param1' => array('name' => 'param1', 'require' => true, 'source' => 'post', 'desc' => '参数1'),
'param2' => array('name' => 'param2', 'require' => true, 'source' => 'post', 'desc' => '参数2'),
),
);
}

public function doSomething() {
$param1 = $this->param1;
$param2 = $this->param2;

// 在这里对$param1和$param2进行解密操作
//
}
}
已邀请:

dogstar - PhalApi创始人

赞同来自:

PhalApi框架对此有专门的设计,可以在请求参数进行统一的解密处理,PhalApi 2.x的文档还没来得及更新,可以先参考PhalApi 1.x的文档:https://www.phalapi.net/wikis/1-23.html
 
我近期会补充2.x的部分。

要回复问题请先登录注册