/** * 跳到重置密码 */ public function toResetPass() { $key = I('key'); $keyFactory = new \Think\Crypt(); $key = $keyFactory->decrypt($key, C('SESSION_PREFIX')); $key = explode('_', $key); if (time() > floatval($key[2]) + 30 * 60) { $this->error('连接已失效!'); } if (intval($key[1]) == 0) { $this->error('无效的用户!'); } session('REST_userId', $key[1]); session('REST_Time', $key[2]); session('REST_success', '1'); $this->display('default/forget_pass3'); }
public function login() { if (IS_AJAX) { if (check_verify(I('post.verify'), 1)) { $Member = M('Member'); $is_email = $Member->regex(I('post.username'), 'email'); if ($is_email) { $resuser = $Member->where('email=\'' . I('post.username') . '\'')->find(); } else { $resuser = $Member->where('username=\'' . I('post.username') . '\'')->find(); } if (sys_md5(I('post.password')) == $resuser['password']) { if (!$resuser['status']) { $this->error(L('USER_STOP')); } $data = array('login_ip' => get_client_ip(), 'last_login_time' => time()); $saveres = $Member->where(array('id' => $resuser['id']))->save($data); if ($saveres) { $Member->where(array('id' => $resuser['id']))->setInc('login_count'); } if (I('post.keep') == 'on') { $crypt = new \Think\Crypt(); $userinfo = array('username' => $crypt->encrypt($resuser['username'], sys_md5(C('DATA_AUTH_KEY'), 'isky71'), 3600 * 24 * 15), 'password' => $crypt->encrypt($resuser['password'], sys_md5(C('DATA_AUTH_KEY'), 'CMS'), 3600 * 24 * 15)); $str = $crypt->encrypt(json_encode($userinfo), C('DATA_AUTH_KEY') . $__SERVER["HTTP_USER_AGENT"]); cookie('member', $str, 3600 * 24 * 15); } session(C('USER_AUTH_KEY'), $resuser['id']); session('uname', $resuser['username']); $this->success(L('LOGIN_SUCCESS'), U('Index/index', $this->vl)); } else { $this->error(L('LOGIN_ERROR')); } } else { $this->error(L('VERIFY_ERROR')); } } else { if (session(C('USER_AUTH_KEY'))) { $this->redirect('Index/index'); } elseif (cookie('member')) { $crypt = new \Think\Crypt(); $userjson = $crypt->decrypt(cookie('member'), C('DATA_AUTH_KEY') . $__SERVER["HTTP_USER_AGENT"]); $userarr = json_decode($userjson, TRUE); foreach ($userarr as $key => $value) { if ($key == 'username') { $uname = $crypt->decrypt($value, sys_md5(C('DATA_AUTH_KEY'), 'isky71')); } if ($key == 'password') { $pwd = $crypt->decrypt($value, sys_md5(C('DATA_AUTH_KEY'), 'CMS')); } } $Member = M('Member'); $ures = $Member->where('username=\'' . $uname . '\'')->find(); if ($ures && $ures['password'] == $pwd) { session(C('USER_AUTH_KEY'), $ures['id']); session('uname', $ures['username']); $this->redirect('Index/index'); } else { cookie(NULL); $this->display(); } } else { $this->display(); } } }