>[info] 群友说像看看中间件做登陆验证,就先简单写了个(TP群:828567087),后面有时间再研究更好的写法
>[danger] ### 1. 环境准备
+ PHP v7.3.4
+ PhpStudy v8.1
+ ThinkPHP v6.0.3
+ 下载 tp6.0 系列的最新版
```
composer create-project topthink/think=6.0.*
```
+ 引入视图扩展
```
composer require topthink/think-view
```
+ 因为用的phpstudy,所以需要修改 `public/.htaccess`,其文件内容中的 index.php后面加个英文问号
```
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
```
+ 复制框架根目录下的 `.example.env` 另存为 `.env`
![](https://img.kancloud.cn/2b/84/2b84a22ce8f6524520fe857cb1dec273_341x175.png)
+ 开启session
![](https://img.kancloud.cn/40/e9/40e9e4a5225100116a689b6ca215c802_912x294.png)
>[danger] ### 2. 命令行创建中间件
+ 在框架根目录下执行命令
```
php think make:middleware CheckLogin
```
![](https://img.kancloud.cn/f6/63/f66328aef8c2018de8e169b1513cc430_701x283.png)
+ 配置中间件别名
![](https://img.kancloud.cn/0a/5a/0a5a75176c96a5e7759041bbacbcd529_989x313.png)
+ 复制一份基础控制器
![](https://img.kancloud.cn/cf/e5/cfe57bc0a2e46be7e325ebdeef40cc5c_828x323.png)
+ `Base.php` 设置控制器中间件,继承Base的控制器都将进行中间件验证
![](https://img.kancloud.cn/60/5e/605ec8d826cccafb72b58c3fec8857e2_853x350.png)
+ 所以需要验证登陆状态的控制器都应该继承Base
![](https://img.kancloud.cn/0b/39/0b39bd6c6997c0a159774c78cd1b0645_786x277.png)
>[danger] ### 3. 写的简单例子我放在网盘
功能描述
+ 未登录访问主页重定向到登陆页面
+ 已登录访问登陆页面重定向到主页
+ 退出登陆
网盘下载地址
+ 链接: https://pan.baidu.com/s/1p01gXQfBVdqg4VZi9Pk8yw 提取码: `hyyb`