isMethod('post') ){ // 接收数据 $username = request('username',''); // 接收数据 $code = request('code',''); // 验证 if( !$username || !$code ) return json_send(['code'=>'error','msg'=>'用户名验证码必填']); // 查询用户 $uid = $AdminUser->orWhere('username',$username)->orWhere('phone',$username)->value('uid'); // 获取数据 $admin = $AdminUser->getOne($uid); // 用户不存在 if( !$admin || $admin['status'] ) return json_send(['code'=>'error','msg'=>'用户名不存在或已被停用']); // 比对密码 if( md5($code) != $admin['password'] ) return json_send(['code'=>'error','msg'=>'密码错误或账号不存在']); // 查询用户的组别 $group = DB::table('auth_group_access')->where(['user_uid'=>$admin['uid']])->pluck('group_id')->toArray(); // 权限小组 $admin['group_id'] = $group; // 删除敏感数据-密码 unset($admin['password']); // 存储登录状态 session(['userAuth'=>$admin]); // 表单令牌 return json_send(['code'=>'success','msg'=>'登录成功','path'=>url('admin')]); } // 加载模板 return $this->fetch(); } /** * 退出登录方法 * * */ public function out(){ // 清除 session()->flush(); // 跳转 return $this->error('退出成功',url('admin/login/index')); } /** * 发送验证码 * * */ public function send_code(Sms $Sms){ if( request()->isMethod('post') ){ // 接收数据 $username = request('username',''); // 如果有数据,并且短信验证码时间未过时 if( !$username ) return json_send(['code'=>'error','msg'=>'用户名必填']); // 获取数据 $session = session('validSmsCode'); // 如果有数据,并且验证码创建的时间在一分钟之内 if( $session && time() - $session['create_time'] < 60 ) return json_send(['code'=>'error','msg'=>'请稍后再试']); // 查询用户 $admin = DB::table('admin')->orWhere('username',$username)->orWhere('phone',$username)->first(['uid','username','phone','status']); // 用户不存在 if( !$admin || $admin['status']) return json_send(['code'=>'error','msg'=>'用户名不存在或已被停用']); // 生成验证码 $code = strval(rand(100000,999999)); // 调用验证码发送 $result = $Sms->send($admin['phone'],$code); // 如果失败 if( isset($result['error']) ) return json_send(['code'=>'error','msg'=>$result['error']]); // session数据 $session = ['code'=>$code,'phone'=>$admin['phone'],'create_time'=>time()]; // 存入session session(['validSmsCode'=>$session]); // 成功结果 return json_send(['code'=>'success','msg'=>'发送成功']); } } }