laravel世界的卫士-中间件middleware

2022-05-15 0 877

laravel世界的卫士-中间件middleware

中间件可以对请求进行过滤,这里可以利用中间件来验证用户是否登录,如果用户登录则可以继续执行原先想执行的操作,如果没登录则重定向到登录页面,让用户先登录。

一、定义中间件

通过 php artsian make:middleware 命令 创建中间件,文件路径: app\\Http\\Middleware\\CheckToken.php

php artisan make:middleware CheckToken
<?phpnamespace App\\Http\\Middleware;use Closure;use Illuminate\\Http\\Request;class CheckToken{    /**     * Handle an incoming request.     *     * @param  \\Illuminate\\Http\\Request  $request     * @param  \\Closure  $next     * @return mixed     */    public function handle(Request $request, Closure $next)    {       //在这里做一个判断,如果token不是 'my-secret-token',则重定向       if ($request->input('token') !== 'my-secret-token') {            return redirect('home');        }        return $next($request);    }}

二、中间件的分类

前置中间件

<?phpnamespace App\\Http\\Middleware;use Closure;class BeforeMiddleware{    public function handle($request, Closure $next)    {         ...        // 应用请求之前执行一些任务        return $next($request);    }}

后置中间件

<?phpnamespace App\\Http\\Middleware;use Closure;class AfterMiddleware{    public function handle($request, Closure $next)    {        $response = $next($request);        // 应用请求之后执行一些任务        return $response;    }}

三、中间件的使用

全局使用中间件

//在app\\Http\\Kernel.php中的$middleware内添加 protected $middleware = [        // \\App\\Http\\Middleware\\TrustHosts::class,        ....        ....        \\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull::class,        //这是之前定义的        \\App\\Http\\Middleware\\CheckToken::class,    ];

使用中间件组

//在app\\Http\\Kernel.php中的$middlewareGroups内添加  protected $middlewareGroups = [      'web' => [           ....        ],        'api' => [           ....        ],        'diy' =>[          //可以在web组和api组中添加,也可以自己diy一个        ]    ];//路由中使用,RouteServiceProvider 默认将 web 和 api 中间件组自动应用到 routes/web.php 和 routes/api.phpRoute::get('/u', function () {})->middleware('diy');

单独使用中间件

    protected $routeMiddleware = [         ...,         'myself'=> \\App\\Http\\Middleware\\CheckToken::class,        ];Route::get('/user', function () {    //})->middleware('myself');

相关视频教程推荐:Laravel 视频教程

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 laravel世界的卫士-中间件middleware https://www.jike1995.com/36848.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务