国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁(yè) > 技術(shù) > IOS開發(fā)

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

IOS開發(fā) 2023-02-16 22:20:48

前言

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

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

準(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)appHttpControllersAuthLoginController.php下復(fù)寫redirectPath方法
判斷登錄的用戶,實(shí)現(xiàn)不同的跳轉(zhuǎn)頁(yè)

//復(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)到首頁(yè)
        return redirect('/home');
    }

Isadmin

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

appHttpKernel.php注冊(cè)Isadmin和Isvip中間件

protected $routeMiddleware = [
IlluminateAuthMiddlewareEnsureEmailIsVerified::class,
        'admin' => AppHttpMiddlewareIsadmin::class,
        'vip' => AppHttpMiddlewareIsvip::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)不同頁(yè)面功能實(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)文章希望大家以后多多支持腳本之家!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號(hào):國(guó)作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來(lái)源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請(qǐng)注明來(lái)源,商業(yè)媒體及紙媒請(qǐng)先聯(lián)系:aishangyiwan@126.com

工信部備案號(hào):湘ICP備19012813號(hào)-5