Laravel实现登录跳转功能
时间:2021-12-30
来源:互联网
标签:
网站管理员登录成功后跳转到网站后台,vip用户登录成功后跳转到vip页面,跳转功能怎么实现的呢,下面小编给大家带来了Laravel实现登录跳转功能,需要的朋友可以参考下
前言
登录跳转:
不同的用户在登录成功之后跳转到不同的网页当中
例如:网站管理员登录成功后跳转到网站后台,vip用户登录成功后跳转到vip页面
准备工作
用户表
CREATE TABLE `users` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `role` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'normal', `email_verified_at` timestamp NULL DEFAULT NULL, `password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `users_email_unique` (`email`), KEY `users_role_index` (`role`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
分别录入系统管理员、vip用户和普通用户

使用redirectPath和middeware实现安全的登录跳转
1)app\Http\Controllers\Auth\LoginController.php下复写redirectPath方法
判断登录的用户,实现不同的跳转页
//复写redirectPath实现登录跳转
public function redirectPath()
{
switch (auth()->user()->role) {
case 'admin':
return 'admin/dashboard';
case 'vip':
return 'vip/dashboard';
default:
return '/home';
}
}2)创建Isvip和Isadmin中间件过滤越权访问用户
php artisan make:middleware Isvip php artisan make:middleware Isadmin
Isvip
public function handle($request, Closure $next)
{
//如果是vip则往下执行逻辑
if(auth()->user()->role === 'vip'){
return $next($request);
}
//不是vip则跳转到首页
return redirect('/home');
}Isadmin
public function handle($request, Closure $next)
{
//如果是管理员则往下执行逻辑
if(auth()->user()->role === 'admin'){
return $next($request);
}
//不是管理员则跳转到首页
return redirect('/home');
}app\Http\Kernel.php注册Isadmin和Isvip中间件
protected $routeMiddleware = [ \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'admin' => \App\Http\Middleware\Isadmin::class, 'vip' => \App\Http\Middleware\Isvip::class, ];
路由中加入中间件进行访问过滤
//中间件检查访问该目录admin/dashboard是否为admin用户,过滤不合格的用户
Route::get('admin/dashboard', function (){
return view('admin.dashboard');
})->middleware(['auth','admin']);
//中间件检查访问该目录vip/dashboard是否为vip用户,过滤不合格的用户
Route::get('vip/dashboard', function (){
return view('vip.dashboard');
})->middleware(['auth','vip']);优化在不使用复写redirectPath方法下实现登录跳转
创建UserRoleRedirect中间件用于不同用户登录跳转不同页面功能实现
php artisan make:middleware UserRoleRedirect
UserRoleRedirect逻辑代码
public function handle($request, Closure $next)
{
switch (auth()->user()->role) {
case 'admin':
return redirect('admin/dashboard');
case 'vip':
return redirect('vip/dashboard');
default:
break;
}
return $next($request);
}路由使用结合admin和vip中间件过滤
Route::get('/home', function () {
return view('welcome');
})->middleware(['auth','auth.redirect']);
Auth::routes();
//中间件检查访问该目录admin/dashboard是否为admin用户,过滤不合格的用户
Route::get('admin/dashboard', function (){
return view('admin.dashboard');
})->middleware(['auth','admin']);
//中间件检查访问该目录vip/dashboard是否为vip用户,过滤不合格的用户
Route::get('vip/dashboard', function (){
return view('vip.dashboard');
})->middleware(['auth','vip']);到此这篇关于Laravel实现登录跳转功能的文章就介绍到这了,更多相关Laravel登录跳转内容请搜索PHP爱好者以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP爱好者!
-
核芯显卡是什么意思?核芯显卡和独立显卡有什么区别? 时间:2025-12-19 -
什么是算术逻辑单元ALU 算术逻辑单元的功能和结构 时间:2025-12-19 -
什么是视觉识别色差检测 视觉识别色差检测的原理、技术特点、应用及常用工具 时间:2025-12-19 -
什么是流量控制 流量控制和拥塞控制的区别 时间:2025-12-19 -
GPU虚拟化是什么意思 GPU虚拟化有哪三种方法 时间:2025-12-19 -
独显是什么意思 独显和集显的区别 时间:2025-12-19
今日更新
-
不挂科在线搜题官网入口一键直达网页版-不挂科搜题网页版官网免登录极速体验
阅读:18
-
无限暖暖2.0搭配势力推理填空答案
阅读:18
-
e网通网页版登录入口在哪-升学e网通官网登录入口
阅读:18
-
蛋仔派对官服下载安装包最新版本-蛋仔派对官服下载安卓苹果快速入口
阅读:18
-
巨匠眼全部成就的达成解锁方式一览
阅读:18
-
藕是什么梗?揭秘网络热词藕的爆笑来源和用法,看完秒懂!
阅读:18
-
美国查获史上最大比特币案 价值150亿美元震惊全球
阅读:18
-
保卫萝卜4波波烤万物1至20关金萝卜全清方法
阅读:18
-
纯纯写作网页版官方入口-纯纯写作网页版官网高速登录与访问指南
阅读:18
-
钉钉网页版登录首页-官方网页版登录入口
阅读:18










