当前位置: 首页 > 知识库问答 >
问题:

如何在登录Laravel的Spatial Laravel/权限包后重定向到不同的仪表板

公英哲
2023-03-14

我是Laravel的新手,我正在使用Laravel 5.8来构建一个应用程序。我使用空间/laravel/权限包来处理应用程序的角色和权限。

一切正常,但我需要帮助,在不同用户登录时将其重定向到不同的仪表盘。

我有四种类型的用户,即管理员、教员、注册员和学生。当他们登录到应用程序时,我希望每个人都被重定向到自己的仪表板。而不是有一个统一的仪表板。

请帮忙!

共有3个答案

冀弘厚
2023-03-14

您可以修改路由,以便为不同的角色使用不同的控制器:

Route::middleware("auth")->get("/home", function(){
    $user = \Auth::user();
    if ($user->hasRole("admin")) {
        return app()
            ->make(\App\Http\Controllers\AdminDashboardController::class)
            ->callAction("index", []);
    } else {
        return app()
            ->make(\App\Http\Controllers\UserDashboardController::class)
            ->callAction("index", []);
    }
});

注意:我前面写的答案不起作用,因为Laravel通过URL存储路由,不关心中间件或组,因此后者总是覆盖前一个。

黄查猛
2023-03-14

https://laravel.com/docs/6.x/authentication#included-鉴定

路径定制

成功验证用户后,用户将被重定向到 /homeURI。您可以自定义身份验证后重定向位置,方法是在LoginController寄存器控制器ResetPasswordController验证控制器上定义一个重定向到属性。

如果重定向路径需要自定义生成逻辑,则可以定义重定向到方法,而不是重定向到属性:

protected function redirectTo()
{
    return '/path';
}

在这个重定向到函数中,您可以根据用户的角色来确定将用户发送到哪个路径。

徐秋月
2023-03-14

您好,您需要为每个仪表板创建一个权限,然后在索引文件中询问哪个子视图具有权限,如果您使用的是刀片模板,您可以这样做

<div class='container'>

@if (Auth::user()->can('Admin'))
 @include('dashboards.admin')
@endif

@if (Auth::user()->can('FACULTY'))
 @include('dashboards.faculty')
@endif

@if (Auth::user()->can('REGISTRAR'))
 @include('dashboards.registrar')
@endif

</div>
 类似资料:
  • 每个人登录后,我一直无法使用Laravel重定向。连接工作,在我登录后,它重定向到一个空白页面,但如果我更改url路径,我可以访问不同的网页。我们将不胜感激!我正在使用LDAP进行连接,它正在工作。 请让我知道,如果有任何其他代码,我应该提供。 非常感谢。 (重定向IfAuthenticated.php) 命名空间应用程序\ Http\中间件; 使用闭包;使用Illumb\Support\Faca

  • 我在Laravel5.2中使用了php artisan函数。 我想重定向的客人登录页面,若客人点击链接,只有用户并没有客人。 我想在登录后将用户重定向到后面的页面。 我怎么能这么做?请详细展示一些文件名示例。 ///////编辑 路线 控制器 Kernel.php

  • 我想在成功登录后为特定页面重定向用户。 我不希望用户在登录后导航到上次查看的页面。 我试过以下网址,但它显示我的错误。 错误:

  • 我在laravel中遇到了一个用户登录的问题,我可以正确地登录用户,但是问题是,在用户登录后,他被重定向到login POST方法,而不是home,我已经将

  • 在我的laravel 5.2应用程序中,我正在努力解决我的路由问题。 预期的行为是: 未注册用户试图访问受保护的页面 重定向到登录 重定向(成功)到预期页面 当然,如果没有预期的页面(当用户主动登录时),则应将其重定向到“仪表板” 例子: 用户将被重定向到登录页面,但是,登录后,他将被重定向到我在authcontroller中定义为$redirectTo的页面 有没有办法将重定向设置为类似(int

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano