欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年08月06日 11:02:10   投稿:mrr  
網(wǎng)站管理員登錄成功后跳轉(zhuǎn)到網(wǎng)站后臺(tái),vip用戶登錄成功后跳轉(zhuǎn)到vip頁(yè)面,跳轉(zhuǎn)功能怎么實(shí)現(xiàn)的呢,下面小編給大家?guī)?lái)了Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能,需要的朋友可以參考下

前言

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

//復(fù)寫(xiě)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中間件過(guò)濾越權(quán)訪問(wè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');
    }

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)行訪問(wèn)過(guò)濾

//中間件檢查訪問(wèn)該目錄admin/dashboard是否為admin用戶,過(guò)濾不合格的用戶
Route::get('admin/dashboard', function (){
    return view('admin.dashboard');
})->middleware(['auth','admin']);

//中間件檢查訪問(wèn)該目錄vip/dashboard是否為vip用戶,過(guò)濾不合格的用戶
Route::get('vip/dashboard', function (){
    return view('vip.dashboard');
})->middleware(['auth','vip']);

優(yōu)化在不使用復(fù)寫(xiě)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中間件過(guò)濾

Route::get('/home', function () {
    return view('welcome');
})->middleware(['auth','auth.redirect']);

Auth::routes();

//中間件檢查訪問(wèn)該目錄admin/dashboard是否為admin用戶,過(guò)濾不合格的用戶
Route::get('admin/dashboard', function (){
    return view('admin.dashboard');
})->middleware(['auth','admin']);

//中間件檢查訪問(wèn)該目錄vip/dashboard是否為vip用戶,過(guò)濾不合格的用戶
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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決tp5在nginx下修改配置訪問(wèn)的問(wèn)題

    解決tp5在nginx下修改配置訪問(wèn)的問(wèn)題

    今天小編就為大家分享一篇解決tp5在nginx下修改配置訪問(wèn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • YII2 全局異常處理深入講解

    YII2 全局異常處理深入講解

    這篇文章主要介紹了YII2 全局異常處理深入講解,文中列舉了異常處理的實(shí)例,有感興趣的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • 利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法

    利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法

    這篇文章主要介紹了利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法,只需Linux系統(tǒng)中安裝過(guò)PHP然后在命令行中操作文中示例即可,需要的朋友可以參考下
    2015-06-06
  • php微信開(kāi)發(fā)之關(guān)注事件

    php微信開(kāi)發(fā)之關(guān)注事件

    這篇文章主要為大家詳細(xì)介紹了php微信開(kāi)發(fā)之關(guān)注事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Yii框架使用魔術(shù)方法實(shí)現(xiàn)跨文件調(diào)用功能示例

    Yii框架使用魔術(shù)方法實(shí)現(xiàn)跨文件調(diào)用功能示例

    這篇文章主要介紹了Yii框架使用魔術(shù)方法實(shí)現(xiàn)跨文件調(diào)用功能,涉及Yii框架中php面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • laravel通過(guò)創(chuàng)建自定義artisan make命令來(lái)新建類文件詳解

    laravel通過(guò)創(chuàng)建自定義artisan make命令來(lái)新建類文件詳解

    Laravel通過(guò)Artisan提供了強(qiáng)大的控制臺(tái)命令來(lái)處理非瀏覽器業(yè)務(wù)邏輯。下面這篇文章主要給大家介紹了關(guān)于laravel如何通過(guò)創(chuàng)建自定義artisan make命令來(lái)新建類文件的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • php ZipArchive壓縮函數(shù)詳解實(shí)例

    php ZipArchive壓縮函數(shù)詳解實(shí)例

    在php中生成zip文件我們只要使用一個(gè)php zip壓縮ZipArchive函數(shù)就可以了,下面小編來(lái)給大家總結(jié)兩個(gè)實(shí)現(xiàn)一個(gè)是利用ZipArchive生成zip,另一個(gè)壓縮文件夾下所有文件
    2013-11-11
  • thinkphp中ajax與php響應(yīng)過(guò)程詳解

    thinkphp中ajax與php響應(yīng)過(guò)程詳解

    這篇文章主要介紹了thinkphp中ajax與php響應(yīng)過(guò)程,以實(shí)例形式詳細(xì)分析了ThinkPHP框架中Ajax響應(yīng)方式的處理原理及實(shí)現(xiàn)過(guò)程,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-12-12
  • 完美的2個(gè)php檢測(cè)字符串是否是utf-8編碼函數(shù)分享

    完美的2個(gè)php檢測(cè)字符串是否是utf-8編碼函數(shù)分享

    這篇文章主要介紹了完美的2個(gè)php檢測(cè)字符串是否是utf-8編碼函數(shù)分享,一個(gè)比較強(qiáng)大、一個(gè)比較簡(jiǎn)潔,需要的朋友可以參考下
    2014-07-07
  • Nginx下配置codeigniter框架方法

    Nginx下配置codeigniter框架方法

    由于項(xiàng)目遷移,不得不在Nginx下配置codeigniter框架,開(kāi)始怎么配置都不成功,經(jīng)過(guò)度娘以及眾網(wǎng)友的熱心幫忙,終于完成了正確的設(shè)置,這里分享給大家,有需要的小伙伴參考下
    2015-04-04

最新評(píng)論