簡體   English   中英

如何根據 Laravel 8 中的用戶角色或權限重定向到不同的視圖?

[英]How can I redirect to different views based on user role or privilege in Laravel 8?

我將下面的函數放在LoginController類中以將用戶重定向到不同的視圖,登錄后我得到了這個419|expired page

protected function authenticated(Request $request, $user) {
    if ($user->PRIVILEGE == 'C') {
        return redirect()->route('/users');
    } else if ($user->PRIVILEGE == 'B') {
        return redirect('/blog');
    } else {
        return redirect('/');
    }
}
  1. 首先把它放在你的LoginController類中: use Illuminate\\Support\\Facades\\Auth;

  2. 注釋掉這行protected $redirectTo =...並在LoginController類中添加這個函數:

    公共函數重定向路徑() {

     if(Auth::user()->privilege =='C'){ return '/users'; } if(Auth::user()->privilege=='B'){ return '/blog'; }

    }

查看app\\Http\\Middleware\\RedirectIfAuthenticated.phphandle方法,您將看到在用戶通過 Auth 檢查后,他們會收到重定向。

此類旨在通過身份驗證后將用戶重定向到正確的landing頁面。

    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            $user = Auth::user();
            if ($user->PRIVILEGE == 'C') {
                return redirect()->route('/users');
            }
            if ($user->PRIVILEGE == 'B') {
                return redirect('/blog');
            } 
            return redirect('/');
        }

        return $next($request);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM