后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)

一、总结

一句话总结:

1、中间件中验证用户是否登录:if(!Auth::guard('admin')->check()){
2、注册中间件(在kernel的路由中间件中注册):protected $routeMiddleware = ['admin.auth'=>AdminMiddleware::class,
3、控制器中使用中间件(控制器的构造方法中):$this->middleware('admin.auth')->except(['login','loginCheck']);

1、中间件中的逻辑怎么写?

逻辑就是用户没登录跳转到哪里:和tp中的一样,这里是用的auth判断用户是否登录
public function handle($request, Closure $next)
{if(!Auth::guard('admin')->check()){return redirect('/admin/login');}return $next($request);
}

2、中间件在哪里注册?

在kernel(app/Http/Kernel.php)的路由中间件(protected $routeMiddleware)中注册
    protected $routeMiddleware = ['admin.auth'=>AdminMiddleware::class,'auth' => \App\Http\Middleware\Authenticate::class,'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,'can' => \Illuminate\Auth\Middleware\Authorize::class,'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,];

3、中间件在哪里使用?

控制器的构造方法中:public function __construct()
public function __construct()
{//排除'login'和'loginCheck'方法,进行中间件的验证$this->middleware('admin.auth')->except(['login','loginCheck']);
}

二、lavarel中间件(使用中间件拦截没登录的用户)

1、创建中间件

D:\software\coding\php\phpstudy\PHPTutorial\WWW\legend3\legend3>php artisan make:middleware AdminMiddleware
Middleware created successfully.

app/Http/Middleware/AdminMiddleware.php 创建成功

2、中间件中验证用户是否登录

 1 <?php
 2
 3 namespace App\Http\Middleware;
 4
 5 use Closure;
 6 use Auth;
 7
 8 class AdminMiddleware
 9 {
10
11     public function handle($request, Closure $next)
12     {
13         if(!Auth::guard('admin')->check()){
14             return redirect('/admin/login');
15         }
16         return $next($request);
17     }
18 }

第6行和第13行,用的是auth用户认证

13-15逻辑:如果没登录,就跳转了后台登录页面

3、注册中间件(在kernel的路由中间件中注册)

kernel路径:app/Http/Kernel.php

也就是把这个中间件插在路由这个拦截节点上

    protected $routeMiddleware = ['admin.auth'=>AdminMiddleware::class,'auth' => \App\Http\Middleware\Authenticate::class,'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,'can' => \Illuminate\Auth\Middleware\Authorize::class,'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,];

'admin.auth'表示是这个中间件的表示符,也就是名字

4、控制器中使用中间件

控制器路径:app/Http/Controllers/Admin/EntryController.php

class EntryController extends Controller
{public function __construct(){//排除'login'和'loginCheck'方法,进行中间件的验证$this->middleware('admin.auth')->except(['login','loginCheck']);}

在构造方法中使用,可以保证执行在每个方法之前

需要排除掉login和loginCheck方法,因为这两个方法是显示登录界面和进行登录判断的方法

转载于:https://www.cnblogs.com/Renyi-Fan/p/11504391.html

后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)相关推荐

  1. 后盾网lavarel视频项目---lavarel用户认证实例

    后盾网lavarel视频项目---lavarel用户认证实例 一.总结 一句话总结: 主要是用的Auth认证,所以配置是配置的auth(config/auth.php),控制器中调用也是用的Auth( ...

  2. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  3. 后盾网lavarel视频项目---lavarel中的tinker是什么

    后盾网lavarel视频项目---lavarel中的tinker是什么 一.总结 一句话总结: 是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据 laravel中 ...

  4. 后盾网lavarel视频项目---lavarel多表关联一对多操作实例

    后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...

  5. 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录

    后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...

  6. 后盾网lavarel视频项目---5、淘宝镜像cnpm的原理及如何使用

    后盾网lavarel视频项目---5.淘宝镜像cnpm的原理及如何使用 一.总结 一句话总结: 原理:把npm上面的所有软件copy过来 使用:npm install -g cnpm --regist ...

  7. 后盾网lavarel视频项目---4、lavarel和vue都是{{}}表示变量,如何解决冲突

    后盾网lavarel视频项目---4.lavarel和vue都是{{}}表示变量,如何解决冲突 一.总结 一句话总结: @{{videos}}:@符号表示lavarel不处理:textarea nam ...

  8. 后盾网lavarel视频项目---模型一对多关联简单实例

    后盾网lavarel视频项目---模型一对多关联简单实例 一.总结 一句话总结: 在模型中定义一个方法来设置一对多关联:return $this->hasMany(Video::class); ...

  9. 后盾网lavarel视频项目---图片上传

    后盾网lavarel视频项目---图片上传 一.总结 一句话总结: 前端还是普通的前端操作,前端上传图片的地址就是图片上传的路由,后端代码也很简单 public function uploader(R ...

最新文章

  1. SAP RETAIL系统与制造业SAP系统上关于补货的配置
  2. CF940D Alena And The Heater
  3. 【英语学习】【WOTD】remittance 释义/词源/示例
  4. c语言双链表从右向左遍历,有没有大佬在的,我这双向链表怎么没办法遍历
  5. [BZOJ]2959: 长跑
  6. shell 调试脚本设置
  7. 1213家中国厂商涌入拉斯维加斯!CES 2019最全预告在此...
  8. Unity 实现简单的人物对话系统
  9. Spring的bean是怎么保证线程安全的
  10. 2020/03/01 03-Django模板DTL使用
  11. 聊聊C++标准库,准标准库中关于时间的概念和用法
  12. F矩阵的自由度是多少?
  13. MySQL自定义函数的使用及MySQL中的流程控制语句
  14. 小程序-输入关键字搜索,关键字在搜索列表中高亮效果
  15. DDOS与DDOS追踪的介绍
  16. 关闭compactos_HOWTO: 利用 CompactOS 减少 Windows 10 磁盘占用量
  17. 如何判断一件事值不值得做?
  18. 公众号无留言功能怎么办?
  19. Launcher的简单介绍
  20. vue路由跳转清空数据

热门文章

  1. 使用JNDI+连接池
  2. WPF 根据绑定值设置DataGrid行背景色
  3. Android TabHost中切換、修改需要显示的Activity
  4. Linux 网络路由介绍
  5. cuDNN 5对RNN模型的性能优化
  6. Git pull[push] 不用每次输入用户名和密码
  7. 记录一次无聊的(经历了Nodejs - Shell - C)的探索问题过程
  8. MOQ TIP1:简介加基础
  9. Block 再学习 !
  10. 23种设计模式整体详解