濮阳杆衣贸易有限公司

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

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

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

前言

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

例如:網(wǎng)站管理員登錄成功后跳轉(zhuǎn)到網(wǎng)站后臺(tái),vip用戶登錄成功后跳轉(zhuǎn)到vip頁面

準(zhǔn)備工作

用戶表

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實(shí)現(xiàn)安全的登錄跳轉(zhuǎn)

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

//復(fù)寫redirectPath實(shí)現(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注冊(cè)Isadmin和Isvip中間件

protected $routeMiddleware = [
\Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'admin' => \App\Http\Middleware\Isadmin::class,
        'vip' => \App\Http\Middleware\Isvip::class,
    ];

路由中加入中間件進(jìn)行訪問過濾

//中間件檢查訪問該目錄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方法下實(shí)現(xiàn)登錄跳轉(zhuǎn)

創(chuàng)建UserRoleRedirect中間件用于不同用戶登錄跳轉(zhuǎn)不同頁面功能實(shí)現(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實(shí)現(xiàn)登錄跳轉(zhuǎn)功能的文章就介紹到這了,更多相關(guān)Laravel登錄跳轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

標(biāo)簽:金華 怒江 溫州 洛陽 赤峰 七臺(tái)河 白城 酒泉

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能》,本文關(guān)鍵詞  Laravel,實(shí)現(xiàn),登錄,跳轉(zhuǎn),功能,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    巩义市| 微博| 和林格尔县| 洛扎县| 平阳县| 泰来县| 蒙阴县| 绥化市| 班戈县| 新野县| 周宁县| 波密县| 星子县| 灵山县| 虞城县| 中江县| 太原市| 信宜市| 临桂县| 尚义县| 嘉义县| 耒阳市| 钟祥市| 巴楚县| 思南县| 呼玛县| 东丽区| 象山县| 化州市| 广昌县| 广宁县| 南川市| 兴隆县| 新丰县| 图木舒克市| 乌拉特前旗| 桐城市| 永安市| 舟曲县| 图片| 酒泉市|