校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Laravel實現登錄跳轉功能

Laravel實現登錄跳轉功能

熱門標簽:凱立德地鐵站地圖標注 400電話個人能不能辦理 滄州電銷外呼系統價格 天津電銷外呼系統違法嗎 手機外呼系統什么原理 上海400客服電話怎么申請 合肥ai電銷機器人費用 溫州外呼系統招商 銀行信貸電話機器人

前言

登錄跳轉:
不同的用戶在登錄成功之后跳轉到不同的網頁當中

例如:網站管理員登錄成功后跳轉到網站后臺,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登錄跳轉內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • laravel 表單驗證實現多個字段組合后唯一
  • Laravel 驗證碼認證學習記錄小結
  • laravel 數據驗證規則詳解
  • laravel 解決強制跳轉 https的問題
  • Laravel重定向,a鏈接跳轉,控制器跳轉示例
  • 解決Laravel使用驗證時跳轉到首頁的問題

標簽:金華 怒江 溫州 洛陽 赤峰 七臺河 白城 酒泉

巨人網絡通訊聲明:本文標題《Laravel實現登錄跳轉功能》,本文關鍵詞  Laravel,實現,登錄,跳轉,功能,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel實現登錄跳轉功能》相關的同類信息!
  • 本頁收集關于Laravel實現登錄跳轉功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 普安县| 宁明县| 宽甸| 北海市| 侯马市| 友谊县| 昌黎县| 杨浦区| 阿拉善右旗| 泰安市| 吴旗县| 建湖县| 桓仁| 万宁市| 都兰县| 新蔡县| 武邑县| 札达县| 乌拉特中旗| 中卫市| 松江区| 启东市| 新建县| 恩平市| 大英县| 上思县| 新密市| 宝丰县| 无锡市| 象州县| 积石山| 竹山县| 确山县| 青海省| 从江县| 东海县| 明溪县| 宣恩县| 弥勒县| 昂仁县| 富宁县|