## [PHP交流群:494826865(點擊群號立即加群)](https://jq.qq.com/?_wv=1027&k=50Qy5h6)
# 管理員登錄補充
> 到這里管理員的登錄功能就完成了,但是還有一些細節上需要做一下優化。
1. 管理員已登錄時,自動跳過登錄頁面
2. 在后臺操作時,如果登錄超時的處理。
##### 一、自動跳過登錄頁面
>[success] 在進入登錄頁面時,需要判斷管理員是否登錄
控制器層:`Admin/LoginController.php`
~~~
? ?/**
? ? * 加載登頁面
? ? * @RequestMapping(route="login", method=RequestMethod::GET)
? ? */
? ?public function index()
? {
? ? ? ?//判斷是否登錄
? ? ? ?if($this->loginlogic->checkLoginStatus()){
? ? ? ? ? ?return context()->getResponse()->redirect("/admin");
? ? ? }
? ? ? ?return view("admin/login/login");
? }
~~~
邏輯層:`Modle/Logic/LoginLogic.php`
新增:`checkLoginStatus`方法,用來檢測管理員的登錄狀態
~~~
? ?/**
? ? * 判斷用戶登錄狀態
? ? */
? ?public function checkLoginStatus(){
? ? ? ?if(HttpSession::current()->has("username") && HttpSession::current()->has("userid")){
? ? ? ? ? return true;
? ? ? }
? ? ? ?return false;
? }
~~~
##### 二、登錄超時的處理
>[success] 判斷是否登錄超時,所有的后臺操作都進行驗證檢測,所以在這里直接在中間件中進行驗證。
在`Http/Middleware/CheckLoginMiddleware.php`添加檢則代碼
~~~
? ?public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
? {
? ? ? ?if(HttpSession::current()->has("username") && HttpSession::current()->has("userid")){
? ? ? ? ? ?// before request handle
? ? ? ? ? ?return $handler->handle($request);
? ? ? }
? ? ? ?//判斷請求類型
? ? ? ?if($request->isAjax()){
? ? ? ? ? ?throw new HttpExecption("登錄超時",3);
? ? ? }
? ? ? ?return context()->getResponse()->redirect("/admin/login");
?
? ? ? ?// after request handle
? }
~~~
>[success] 添加過之后,即可進行檢測,前提是控制器要經過中間件。
- 前言
- 第一部分:課程介紹
- 第二部分:docker的快速入門
- docker的安裝
- docker的運行和配置
- docker操作過程中的常見問題
- Docker的常用命令
- 第三部分 Swoft的開發環境部署和工具的安裝
- 第四部分:Swoft的安裝和常見問題
- swoft的安裝
- swoft代碼同步
- Swoft的熱重載
- swoft安裝過程中的常見問題
- 第五部分:swoft的基礎知識快速入門
- 目錄結構
- 控制器
- 路由
- 配置
- 請求與響應
- 中間件
- 異常處理
- 視圖
- Bean
- 數據庫操作
- http-session
- 驗證器
- 第六部分:實戰
- Swoft的安裝(本地)
- Swoft的環境部署
- 調整項目目錄結構
- 前臺頁面部署
- 前臺首頁
- 引入前端資源
- 其它頁面的引入
- 后臺功能的實現
- 創建并連接數據庫
- 管理員登錄功能的實現
- 代碼優化-函數
- 代碼優化-全局異常處理
- 代碼結構分層
- 完善管理員的登錄功能
- 管理員密碼修改功能的實現
- 管理員登錄補充
- 站點配置功能的實現
- 后臺菜單處理
- 課程管理功能
- 創建數據表并創建實體
- 實現課程的添加功能
- 文件上傳
- 課程列表功能的實現
- 課程編輯功能的實現
- 課程的刪除功能
- 課程推薦功能的實現
- 前臺數據調用