1、在控制器中 当登录成功时 用Session 存入登录数据
public function save(Request $request) { try { //接值 $data=$request->all(); //验证 validate(Error::class)->batch(true)->check([ 'username' => $data['username'], 'password' => $data['password'], ]); //连接数据库 $obj = new appdemomodelUser(); $res = $obj->loginUser($data); if($res){ if($res['password']==$data['password']){ //记录 Session::set('username',$data['username']); //登录日志 登录成功记录登录信息 Log::write('用户'.$data['username'].'在'.date('Y-m-d H:i:s'.'登录成功')); return success(200,'登录成功',''); }else{ return fail(2001,'密码错误',''); } }else{ return fail(2001,'账号错误',''); } } catch (ValidateException $e) { // 验证失败 输出错误信息 $error=$e->getError(); //返回错误信息 return fail(2001,$error,''); } }
2、在模块中的 middleware.php 中开启session
//开启session thinkmiddlewareSessionInit::class
3、创建中间件
php think make:middleware Check
4、在中间件
public function handle($request, Closure $next) { //查看数据 $name = Session::get("username"); $response =$next($request); //未登录 重定向登录页 if(empty($name) ){ return redirect("login"); } return $response; }
5、在路由中使用
//用户列表展示Route::any('shows','User/index')->middleware(appmiddlewareCheck::class);