加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹤壁站长网 (https://www.0392zz.cn/)- 分布式云、存储数据、视频终端、媒体处理、内容创作!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

laravel框架怎样用中间件实现防非法登录?

发布时间:2022-03-21 14:18:24 所属栏目:语言 来源:互联网
导读:关于laravel框架中间件,就是控制路由的访问,进行分类并统一管理。小编认为是比较实用的,下面就给大家分享laravel如何利用中间件实现防非法登录和权限控制,感兴趣的朋友可以看看。 1、首先我们打开artisan输入下面的命令行,创建一个中间件文件 php artis
     关于laravel框架中间件,就是控制路由的访问,进行分类并统一管理。小编认为是比较实用的,下面就给大家分享laravel如何利用中间件实现防非法登录和权限控制,感兴趣的朋友可以看看。
 
      1、首先我们打开artisan输入下面的命令行,创建一个中间件文件
 
php artisan make:middleware AdminLogin
      执行命令后我们会发现Middleware文件夹会多出一个AdminLogin文件
 
      2、然后我们打开kernel.php,将这个中间件加入到路由中间件中
 
 protected $routeMiddleware = [
    'auth' => AppHttpMiddlewareAuthenticate::class,
    'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,
    'can' => IlluminateFoundationHttpMiddlewareAuthorize::class,
    'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,
    'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class,
    'admin.login' => AppHttpMiddlewareAdminLogin::class,
  ];
      可以看到我们在这个数组用一个下标为admin.login指向了这个中间节类
 
      3、然后在路由上将这个中间件加入关联上
 
Route::group(['middleware' => ['web','admin.login.login']], function () {
 
  Route::get('/admin/login/login','AdminLoginController@login');
  //登录页面
  Route::get('/admin/index/index','AdminIndexController@index');
 
  //后台首页路由
 
 
});
      这里一定要将登录的路由和后台路由放到一个关联中间件中,只有放到同一个中间件中,session才能共用
 
      4、最后我们在Middleware下的AdminLogin.php中修改一下原本的代码
 
      在这里我们做一个简单的小判断,判断一下有没有session存在,如果有的话就直接走我们现在访问的路由,如果没有session就给他重定向到登录页面
 
      一个简单的防非法登录就可以用了
 
      这种方法我们也可以拿来做rbac,也是建立一个中间件,进行session判断,查库中该管理员是否对有该权限访问该路由
 
      此时您可能会用到
 
$route = $request->path();
      他的作用就是获取到你当前访问的路由再进行判断可不可以访问。

(编辑:鹤壁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读