|
@ -13,4 +13,65 @@ class mUser extends mBase { |
|
|
$this->obj = new dUser(); |
|
|
$this->obj = new dUser(); |
|
|
$this->tbl = 'tcm_user'; |
|
|
$this->tbl = 'tcm_user'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getOpenid($code) { |
|
|
|
|
|
$appid = MP_APPID; |
|
|
|
|
|
$secret = MP_SECRET; |
|
|
|
|
|
|
|
|
|
|
|
$get_openid_url = sprintf(MP_GET_OPENID_HREF, $appid, $secret, $code); |
|
|
|
|
|
|
|
|
|
|
|
$jsonres = $this->getCUrl($get_openid_url); |
|
|
|
|
|
$get_openid_res = json_decode($jsonres, true); |
|
|
|
|
|
if(empty($get_openid_res['openid'])){ |
|
|
|
|
|
$this->setError('获取openid失败'); |
|
|
|
|
|
$tool_obj = new qTool(); |
|
|
|
|
|
$tool_obj->trackLog('tcm', $get_openid_url . "|" .$jsonres, sprintf(LOG_TRACK_SAVE_PATH, date('Y-m-d'), 'tcm_get_openid')); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $get_openid_res['openid']; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getUserByOpenid($openid) { |
|
|
|
|
|
return $this->obj->select($this->tbl, array('sql'=>'`openid`=?','vals'=>array($openid))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function createUniqueUid($openid) { |
|
|
|
|
|
$uuid = uniqid($openid, true); |
|
|
|
|
|
$hash = hash('sha256', $uuid); |
|
|
|
|
|
$decimal = base_convert(substr($hash, 0, 16), 16, 10); |
|
|
|
|
|
return substr($decimal, 0, 10); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getUserByUid($uid) { |
|
|
|
|
|
return $this->obj->select($this->tbl, array('sql'=>'`uid`=?','vals'=>array($uid))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function createUser($info){ |
|
|
|
|
|
return $this->obj->insert($this->tbl, $info); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getToken($uid){ |
|
|
|
|
|
$secretKey = JWT_KEY; |
|
|
|
|
|
$timestamp = time(); |
|
|
|
|
|
$data = $uid . '|' . $timestamp; |
|
|
|
|
|
$token = hash_hmac('sha256', $data, $secretKey); |
|
|
|
|
|
return base64_encode($data . '|' . $token); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function validateToken($uid, $token){ |
|
|
|
|
|
$secretKey = JWT_KEY; |
|
|
|
|
|
$decodedToken = base64_decode($token); |
|
|
|
|
|
list($valid_uid, $timestamp, $tokenHash) = explode('|', $decodedToken); |
|
|
|
|
|
|
|
|
|
|
|
$data = $uid . '|' . $timestamp; |
|
|
|
|
|
$validToken = hash_hmac('sha256', $data, $secretKey); |
|
|
|
|
|
|
|
|
|
|
|
if (hash_equals($validToken, $tokenHash)) { |
|
|
|
|
|
if (time() - $timestamp < 7200) { |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
} |
|
|
} |