您的位置:首页 > 产品设计 > UI/UE

在系统启用了session的情况下,通过相同浏览器的地址栏去访问接口$request中会多出一些字段

2016-01-05 00:00 716 查看
由于使用了session_start,对session新加了一些字段,这样导致在进行签名验证加密的时候可能加入一些字段,导致加密出来的结果不同。

解决方法:更换一个session没启用的浏览器,或者在签名验证的时候利用foreach将无用的签名数据unset掉。

function create_sign($app_key,$app_secret,$data){
if(!isset($GLOBALS['context']->config['api_version'])){
$api_version = 1;
}else{
$api_version = $GLOBALS['context']->config['api_version'];
}

if(isset($api_version) && $api_version == 2){
unset($data['sign']);
ksort($data);

$sign = "";
foreach ($data as $k=>$v){
$sign .= $k.$v;
}
//echo $sign = md5_3($app_key . $sign . $app_secret);exit;
$sign = md5_3($app_key . $sign . $app_secret);
}else{
$sign = md5($app_key.$app_secret.add_day_time());
}

return $sign;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: