ThinkPHP6中间件处理后台登录逻辑的用法

作者:admin 发布时间:2020-09-30 10:36:29 浏览:2421次
上篇为大家带来《ThinkPHP6.0使用extends Base方式处理后台登录逻辑》,说好要分享使用ThinkPHP6中间件的方法来做登录逻辑处理。今天就大致讲解一下吧。 首先需要做应用的根目录创建一个中间件的文件夹(和控制器controller同级),小超越就命名为middieware吧,你们可以随意命名,只要便于维护就好,然后在这个文件夹下创建Auth.php文件,同样的文件命名可以根据自己的习惯来。 然后就是放Thinkphp规定的格式代码了,以下是小超越写好的,登录功能代码,我们把拦截的判断代码放在前置中间件里。 [cc lang="php"]/* * @Author: 小超越 * @LastEditors: 小超越工作室https://www.zhe94.com * @desc: 认证中间件 */ namespace app\middleware; use think\facade\Cache; class Auth { public function handle($request, \Closure $next) { //前置中间件 $token=cookie(config('redis.user.admin_token')); $this->adminToken=cache::store('redis')->get(config('redis.user.admin_token').$token); if(empty($this->adminToken) && !preg_match("/Login/",$request->pathinfo())){ return redirect('../login/index',302); } $resd= $next($request); //后置中间件 return $resd; } }[/cc] 现在中间代码有了,我们该如何来调用呢?其实也是很简单的,Thinkphp支持多种的引用中间件的方法,非常便于我们运用,它们分别分为全局中间件、应用中间件(多应用模式下有效)、路由中间件以及控制器中间件四个组。执行顺序分别为:全局中间件->应用中间件->路由中间件->控制器中间件 ThinkPHP6中间件处理后台登录逻辑的用法

全局中间件

全局中间件在app目录下面middleware.php文件中定义,使用下面的方式: return [ // 全局请求缓存 // \think\middleware\CheckRequestCache::class, // 多语言加载 // \think\middleware\LoadLangPack::class, // Session初始化 \think\middleware\SessionInit::class, //加载登录认证 app\middleware\Auth::class ];

应用中间件

如果你使用了多应用模式,则支持应用中间件定义,你可以直接在应用目录下面增加middleware.php文件,定义方式和全局中间件定义一样,只是只会在该应用下面生效。

路由中间件

最常用的中间件注册方式是注册路由中间件 Route::rule('login/:name','login') ->middleware(\app\middleware\Auth::class);

控制器中间件

支持为控制器定义中间件,只需要在控制器中定义middleware属性,例如: namespace app\controller; class Index { protected $middleware = ['app\middleware\Auth'];//加载中间件 public function index() { return 'index'; } public function login() { return 'login'; } } 大家依照这个格式写就好。更加详细的可以参考官方的文档《中间件文档》 中间件的用法,并不难,希望大家能举一反三,中间件顾名思义就是起到中介的作用,用作运行业务代码前起到拦截的作用。实际的项目中运用到的场景还是蛮多的!

如需转载请保留本文出处: https://www.zhe94.com/811.html

上一篇:快速建站之前言:如何建立一个自己的网站
下一篇:PHP有多少种面向对象设计模式?23种设计模式总结