主頁 > 知識庫 > Laravel實現(xiàn)登錄跳轉(zhuǎn)功能

    Laravel實現(xiàn)登錄跳轉(zhuǎn)功能

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

    前言

    登錄跳轉(zhuǎn):
    不同的用戶在登錄成功之后跳轉(zhuǎn)到不同的網(wǎng)頁當中

    例如:網(wǎng)站管理員登錄成功后跳轉(zhuǎn)到網(wǎng)站后臺,vip用戶登錄成功后跳轉(zhuǎn)到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;

    分別錄入系統(tǒng)管理員、vip用戶和普通用戶

    使用redirectPath和middeware實現(xiàn)安全的登錄跳轉(zhuǎn)

    1)app\Http\Controllers\Auth\LoginController.php下復(fù)寫redirectPath方法
    判斷登錄的用戶,實現(xiàn)不同的跳轉(zhuǎn)頁

    //復(fù)寫redirectPath實現(xiàn)登錄跳轉(zhuǎn)
        public function redirectPath()
        {
            switch (auth()->user()->role) {
                case 'admin':
                    return 'admin/dashboard';
                case 'vip':
                    return 'vip/dashboard';
                default:
                    return '/home';
            }
        }

    2)創(chuàng)建Isvip和Isadmin中間件過濾越權(quán)訪問用戶

    php artisan make:middleware Isvip
    php artisan make:middleware Isadmin

    Isvip

    public function handle($request, Closure $next)
        {
            //如果是vip則往下執(zhí)行邏輯
            if(auth()->user()->role === 'vip'){
                return $next($request);
            }
            //不是vip則跳轉(zhuǎn)到首頁
            return redirect('/home');
        }

    Isadmin

    public function handle($request, Closure $next)
        {
            //如果是管理員則往下執(zhí)行邏輯
            if(auth()->user()->role === 'admin'){
                return $next($request);
            }
            //不是管理員則跳轉(zhuǎn)到首頁
            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']);

    優(yōu)化在不使用復(fù)寫redirectPath方法下實現(xiàn)登錄跳轉(zhuǎn)

    創(chuàng)建UserRoleRedirect中間件用于不同用戶登錄跳轉(zhuǎn)不同頁面功能實現(xiàn)

    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);
        }

    路由使用結(jié)合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']);
    

    到此這篇關(guān)于Laravel實現(xiàn)登錄跳轉(zhuǎn)功能的文章就介紹到這了,更多相關(guān)Laravel登錄跳轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

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

    巨人網(wǎng)絡(luò)通訊聲明:本文標題《Laravel實現(xiàn)登錄跳轉(zhuǎn)功能》,本文關(guān)鍵詞  Laravel,實現(xiàn),登錄,跳轉(zhuǎn),功能,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  1. 相關(guān)文章
  2. 下面列出與本文章《Laravel實現(xiàn)登錄跳轉(zhuǎn)功能》相關(guān)的同類信息!
  3. 本頁收集關(guān)于Laravel實現(xiàn)登錄跳轉(zhuǎn)功能的相關(guān)信息資訊供網(wǎng)民參考!
  4. 推薦文章