public function __construct() { $skipLogin = ['user:login', 'user:register']; // 可以跳过用户验证的程序 $route = strtolower($GLOBALS['safeGetParam']['module'] . ':' . $GLOBALS['safeGetParam']['action']); if (!in_array($route, $skipLogin)) { $inputs = ApiTools::getRequestParams(); if (!isset($inputs['authcode'])) { ApiTools::error(ApiTools::CODE_ERR_LOGIN, "授权信息有误"); } //用户验证等 $inputs = ApiTools::getRequestParams(); $authcode = $inputs['authcode']; $loginInfo = ApiLoginLogic::authCode($authcode); if (!$loginInfo) { ApiTools::error(ApiTools::CODE_ERR_LOGIN, "授权信息有误"); } $now = time(); $this->uid = $loginInfo['uid']; if ($now > $loginInfo['lose_time']) { ApiTools::error(ApiTools::CODE_ERR_INVALID, "授权已过期"); } $this->userInfo = M('user')->where("id={$this->uid}")->find(); if (empty($this->userInfo)) { ApiTools::error(ApiTools::CODE_ERR_LOGIN, "授权信息有误"); } } }
/** * 邀请 */ public function invite() { $inputs = ApiTools::getRequestParams(); $save['uid'] = $this->uid; $save['to_uid'] = isset($inputs['fid']) ? $inputs['fid'] : ''; $save['intro'] = isset($inputs['intro']) ? $inputs['intro'] : ''; if (empty($save['to_uid'])) { ApiTools::error(ApiTools::CODE_MSG, '请选择目标用户'); } if ($save['uid'] == $save['to_uid']) { ApiTools::error(ApiTools::CODE_MSG, '不能加自己为好友'); } $isset = M('relation')->where("uid={$save['uid']} and fid={$save['to_uid']}")->find(); if ($isset) { ApiTools::error(ApiTools::CODE_MSG, '好友关系已经建立'); } M('invite')->add($save); ApiTools::success(['msg' => 'ok']); }
/** * 查询用户详细信息 * */ public function getInfo() { $inputs = ApiTools::getRequestParams(); // // $uid = intval($inputs['uid']); //$uid = $this->uid ; if (!$uid) { ApiTools::error(ApiTools::CODE_ERR_NOT_FOUND, "找不到该用户"); } $info = M('user')->where('id=' . $uid)->field('id,name,avatar')->find(); if (!empty($info)) { $info['avatar'] = getAvatarFullPath($info['avatar']); $data = array('info' => $info); ApiTools::success($data); } else { ApiTools::error(ApiTools::CODE_ERR_NOT_FOUND, "找不到该用户"); } }
/** * 对标准请求协议数据执行解密 * @param Request $request 必须包含 key、iv、data、sss 四个字段 * @return bool|string */ public function decodeRequest($sss, $mKey, $mIv, $mData) { self::$sss = $sss; $mKey = base64_decode($mKey); $mIv = base64_decode($mIv); $mData = base64_decode($mData); $privateKeyPath = storage_path('app/public/pks/pri_key.pem'); $priKey = file_get_contents($privateKeyPath); $decrypted = ''; openssl_private_decrypt($mKey, $decrypted, $priKey); $this->key = $decrypted; $decrypted = ''; openssl_private_decrypt($mIv, $decrypted, $priKey); $this->iv = $decrypted; $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); /* 初始化解密模块 */ mcrypt_generic_init($td, $this->key, $this->iv); /* 解密数据 */ $data = mdecrypt_generic($td, $mData); $data = $this->pkcs5_unpad($data); /* 结束解密,执行清理工作,并且关闭模块 */ mcrypt_generic_deinit($td); mcrypt_module_close($td); return json_decode($data, true); }