首页 > 解决方案 > 在用户登录页面后添加路由

问题描述

我将背包 4 用于 laravel(laravel 8)并且无法为用户页面编写路线。登录后用户必须获取 /user/dashboard 或 /dashboard,但用户被重定向到 /admin/dashboard。我怎么解决这个问题?

网页.php

Route::get('/', function() {
    return redirect()->route('backpack.auth.login');
});
Route::get('/user/dashboard', [DashboardUserController::class, 'index'])->middleware(['web','admin']);

标签: laravelauthenticationredirectroutesdashboard

解决方案


如果您的用户永远不需要使用 Backpack 并且应该只能查看仪表板,您可以向 Backpack 的中间件集添加一个新的中间件,以检查您的用户是管理员还是普通用户,如果他们不是则重定向他们管理员。

因为 Backpack 自己注册登录路由,所以你不能只在注册时将中间件添加到路由中。相反,您需要将中间件添加到 Backpack 的admin中间件组。那就是添加到所有管理路由中的那个。

脚步:

  1. 创建新的中间件:
php artisan make:middleware RedirectToDashboard
  1. 打开新的中间件app/Http/Middleware/RedirectToDashboard.php
  2. 将方法更改为handle如下所示:
public function handle(Request $request, Closure $next)
{
    if($request->user()->isNormalUser()) { // You need to change this to the check if the user is a normal user, that's specific to your application
        return redirect()->to('dashboard'); // 'dashboard' is the name of your route, you may need to change it.
    }

    return $next($request);
}
  1. 将新的中间件添加到 Backpack 的默认中间件集中config/backpack/base.php。打开文件并查找middleware_class条目(很可能在第 220 行附近)。添加\App\Http\Middleware\RedirectToDashboard::class到数组中。
  2. 以普通用户身份登录 Backpack 并检查您是否被重定向。

推荐阅读