美文网首页
ThinkPHP6.0 使用前置中间件处理登录拦截

ThinkPHP6.0 使用前置中间件处理登录拦截

作者: 皮蛋馅儿 | 来源:发表于2020-04-06 16:19 被阅读0次

1、中间件介绍

中间件是在请求具体的操作之前还是之后执行,完全取决于中间件的定义本身。

下面是一个前置行为的中间件示例

<?php

namespace app\middleware;

class Before
{
    public function handle($request, \Closure $next)
    {
        // 添加中间件执行代码

        return $next($request);
    }
}

2、接下来介绍利用前置中间件对后台登录进行拦截的做法,以下做法是在多应用模式下的(如果不了解多应用模式,可以查看我往期文章):

\app\admin下,新建middleware文件夹,并且在middleware下新建Auth.php文件,添加代码如下:

<?php
declare (strict_types = 1);

namespace app\admin\middleware;

use think\Response;

/**
 * 后台登录跳转判断,未登录跳转到登录页面
 * Class Auth
 * @package app\admin\middleware
 */
class Auth
{
    public function handle($request, \Closure $next)
    {
        // 前置中间件
        if (empty(session('adminUser')) && !preg_match('/login/', $request->pathinfo())) {
            return redirect((string)url('login/index'));
        }
        
        return $next($request);
    }

    /**
     * 中间件结束调度
     * @param Response $response
     */
    public function end(Response $response)
    {

    }
}

\app\admin下,新建middleware.php,在文件中引入刚刚新建的中间件,添加代码如下:

<?php

// 全局中间件定义文件
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化
    \think\middleware\SessionInit::class,
    // 后台登录跳转判断
    \app\admin\middleware\Auth::class,
];

接下来就是对中间件的测试,在未登录状态下,访问后台的需要登录的内容页面,则会跳转到登录页面,只有登录情况下才能正常访问,这就是前置中间件对登录拦截的具体使用。

加我微信公众号:\color{red}{皮蛋馅儿},定期更新文章,一起学习哦~

相关文章

  • ThinkPHP6.0 使用前置中间件处理登录拦截

    1、中间件介绍 中间件是在请求具体的操作之前还是之后执行,完全取决于中间件的定义本身。 下面是一个前置行为的中间件...

  • spring mvc 4.25 里面的拦截器

    因为项目需要做登录和未登录的处理,想来想去使用拦截器来处理,在拦截器里面判断是否已经登录,如果未登录就跳转到登录...

  • springboot拦截器的多重重定向问题

    使用springboot 拦截器,作为登录拦截,如果没有登录的用户不能访问主页,去到登录页面登录, 1.在声明拦截...

  • 权限配置

    流程1.首次加载->跳转根页面/home->前置守卫拦截->没有保存token跳转登录页->守卫拦截->白名单放行...

  • 十六、拦截器实现的细节

    1. 拦截器细节 前置处理按拦截器列表的顺序执行; 后置处理按拦截器列表的逆序执行; 后置处理的异常需捕获后统一抛...

  • Node.js + Express 登录拦截

    原文链接 利用 Express 中间件功能实现登录拦截。如果用户请求的路径需要登录后才能访问,将用户重定向到登录页...

  • django请求中间件的使用

    前言: 最近工作中需要用到请求中间件拦截前端特定的请求url,处理请求数据。这里简要记录一下中间件的使用流程。 开...

  • SpringBoot系列—自定义拦截器(九)

    个人博客:haichenyi.com。感谢关注   拦截器拦截请求做额外的处理。 举个栗子:登录拦截器,拦截所有的...

  • Nodejs(Express) - 04 中间件

    一、什么是中间件 中间件(Middleware)是在http的请求和响应之间进行拦截处理的模块, express通...

  • SpringBoot通过拦截器拦截非登录用户

    使用springmvc中的intercepter进行页面的拦截,拦截除了登录界面的所有页面,当用户登录过后产生保存...

网友评论

      本文标题:ThinkPHP6.0 使用前置中间件处理登录拦截

      本文链接:https://www.haomeiwen.com/subject/nwdbphtx.html