params['http']['backendToFrontendApi']['authKey']; } return self::AUTH_KEY; } /** * 获取允许的时间差 * @return string */ public static function getTimeDiff(){ if(self::TIME_DIFF === ''){ return Yii::$app->params['http']['backendToFrontendApi']['timeDiff']; } return self::TIME_DIFF; } /** * 生成签名 * @param array $params * @return array */ public static function paramsFormat(array $params){ if(!isset($params['timestamp'])){ $params['timestamp'] = time(); } if(isset($params['signature'])){ unset($params['signature']); } ksort($params); $string = ''; foreach($params as $key=>$value){ $string .= $key.'='.$value . '&'; } $params['signature'] = sha1(trim($string,'&') . self::getAuthKey()); return $params; } /** * 验证签名 * @param $signature * @param array $params * @return bool */ public static function checkSignature($signature, array $params){ $params = self::paramsFormat($params); if($params['signature'] !== $signature){ return false; } $timeDiff = (int)self::getTimeDiff(); if($timeDiff > 0 && (Date::nowTime() - $params['timestamp']) > $timeDiff){ return false; } return true; } }