后盾网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、中间件中验证用户是否登录

 <?php

 namespace App\Http\Middleware;

 use Closure;
use Auth; class AdminMiddleware
{ public function handle($request, Closure $next)
{
if(!Auth::guard('admin')->check()){
return redirect('/admin/login');
}
return $next($request);
}
}

第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方法,因为这两个方法是显示登录界面和进行登录判断的方法

 

后盾网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视频项目---Vue项目使用vue-awesome-swiper轮播插件

    后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件 一.总结 一句话总结: vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同 ...

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

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

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

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

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

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

随机推荐

  1. C#实现Web链接启动应用程序

    C#实现Web链接启动应用程序 最近需要配合Web端实现用户点击链接来启动应用程序并且需要能够传参数给应用程序. 那么就可以使用注册表来实现这个功能 编写注册表可以在软件安装程序中加入,也可以在软件启 ...

  2. Logistic回归应用-预测马的死亡率

    Logistic回归应用-预测马的死亡率 本文所有代码均来自<机器学习实战>,数据也是 本例中的数据有以下几个特征: 部分指标比较主观.难以很好的定量测量,例如马的疼痛级别 数据集中有30 ...

  3. centos部署LVS负载均衡直接路由DR模式

    环境: 在vm里开三个虚拟机 负载调度器:10.0.3.102 真实服务器1:10.0.3.103 真实服务器2:10.0.3.104 虚拟ip: 10.0.3.99 (用来飘移) 负载调度器上 if ...

  4. Python基础——函数的装饰器

    等待更新…………………… 后面再写

  5. pycharm 激激活码

    pycharm 激活码 [20191224亲测可用] http://lookdiv.com/neet/youd/codes.html    

  6. Linux日常之命令sed

    一. 命令sed简介 利用命令sed能够同时处理多个文件多行的内容,可以不对原文件改动,仅把匹配的内容显示在屏幕上,也可以对原文件进行改动,但是不会在屏幕上返回结果,若想查看改动后的文件,可以使用命令 ...

  7. 绕过CDN找到真实IP

    现在很多大型企业都会使用CDN内容分发网络,因为CDN存在多个缓存服务点,而且会根据用户IP地址,将用户请求导向到最近的服务点上进行相应,所以得不到主服务站点的ip地址,总结学习一下绕过CDN找到真实 ...

  8. creat-react-app生成的项目默认端口号是3000,如何更改?

    从项目的 package.json 文件中可以看到,npm start即scripts start.js,因此我们找到scripts/start.js ,部分代码如下: 找到 DEFAULT_PORT ...

  9. java课堂作业3 第一题 能查阅申请对象个数

    实验代码 public class Num { public static void main(String[] args) { // TODO Auto-generated method stub ...

  10. 关于小程序picker 的使用

    前言 以前做小程序的时候只会用那个picker mode = region的 3级选中, 现在需要自己根据后台给的编号省市区来用然后就研究了多列选择器:mode = multiSelector 的用法 ...