测试中发现,超级管理把普通管理或者超级管理删除了之后,如果被删除用户正在登陆状态,那么他还可以进行操作。。那么这样的问题就不能在上线发生!
laravel框架 自带的中间件操作就可以处理这样的事情发生! 我们可以在执行删除的时候在中间件中做对应的判断,判断当前session是否存在在数据表中!
前提是你的删除功能可以正常删除!
接下来是我登陆中间件部分加的代码:成功的解决了被删用户还可以进行操作的bug
<?php
//定义登录中间件
namespace APP\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\DB;//引入数据库
use App\Http\Model\Login;
class AdminLogin{
public function handle($request, Closure $next)
{
//echo session('user');
if(!session('user')){
return redirect('login/login');
}
//主要逻辑部分!应该不难理解吧!
$user_name = json_decode(session('user'),true)['user_name'];
$user = Login::where('user_name',$user_name)->first();
if(!$user){
return redirect('login/login');
}else{
return $next($request);
}
// return $next($request);
}
}