redirect('/',302); } return $this->fetch(); } /** * 处理登录 */ public function do_login(){ if(Request::instance()->post()){ // 接收表单提交过来的数据,做数据验证 $admin = Request::instance()->post('username'); $password = Request::instance()->post('password'); $code = Request::instance()->post('code'); if(!isset($admin) || empty($admin)){ die(json_encode(['code'=>0,'msg'=>'用户名不能为空!'])); } if(!isset($password) || empty($password)){ die(json_encode(['code'=>0,'msg'=>'密码不能为空!'])); } if(!isset($code) || empty($code)){ die(json_encode(['code'=>0,'msg'=>'验证码不能为空!'])); } // 从session里拿到验证码,进行验证码对比 $validate_code = Session::get('validate_code'); if($code != $validate_code){ die(json_encode(['code'=>0,'msg'=>'验证码错误!'])); } // 查询客户信息,判断用户名和密码是否正确 $admin_info = Db::name('admin')->where('admin',$admin)->find(); if(empty($admin_info)){ die(json_encode(['code'=>0,'msg'=>'用户不存在!'])); } if(think_ucenter_md5($password,UC_AUTH_KEY) != $admin_info['password']){ die(json_encode(['code'=>0,'msg'=>'密码错误!'])); } if($admin_info['status'] != 1){ die(json_encode(['code'=>0,'msg'=>'该账户未激活!'])); } $last_login_info = Db::name('admin')->where(array('id' => $admin_info['id']))->field(['last_login_time','last_login_ip'])->find(); Session::set('last_login_info',$last_login_info); // 生成login_token用于WebSocket连接验证 $login_token = md5($admin_info['id'] . time() . uniqid()); Db::name('admin')->where(array('id' => $admin_info['id']))->update(array( 'last_login_time' => time(), 'last_login_ip' => getIP(), 'login_token' => $login_token )); $user_info = Db::name('admin')->where('id',$admin_info['id'])->find(); Session::set('user_info',$user_info); insertAdminLog('登录'); die(json_encode(['code'=>1,'msg'=>'登录成功!'])); }else{ die(json_encode(['code'=>0,'msg'=>'操作错误!'])); } } /** * 登出 */ public function logout(){ insertAdminLog('退出'); Session::set('user_info',""); Session::set('last_login_info',""); $this->redirect('/login/index',302); } /** * 验证码 */ public function validateCode(){ $validate = new ValidateCode(); $validate->doimg(); } }