建一個Base控制器,所有需要登錄才能訪問的頁面都繼承這個控制器
```
方法一:前置方法
//前置方法:運行時先執行這個方法
protected $beforeActionList = ["isLogin"];
protected function isLogin(){
if (!session(('adminname'))){
return $this->redirect('admin/login/login');
}
}
```
```
方法二:構造函數
public function __construct(App $app = null)
{
parent::__construct($app);
if (!Cookie::get("username")){
return $this->error("請進行登錄",url("admin/login/index"));
}
}
```
```
方法三:中間件攔截
在app\admin下建http\middleware\Check類
namespace app\admin\http\middleware;
use think\Controller;
use think\facade\Session;
class Check extends Controller
{
public function handle($request, \Closure $next)
{
if ($this->request->controller() !=='Login'){
if (!Session::get("userId")){
$this->error("請先登錄",url("admin/login/index"));
}
}
return $next($request);
}
}
然后在middleware.php文件中返回這個類
app\admin\http\middleware\Check::class,
```