【问题标题】:How to define redirect path for unauthenticated users of custom auth guard in Laravel8 using Jetstream and Fortify如何使用 Jetstream 和 Fortify 在 Laravel 8 中为自定义身份验证保护的未经身份验证的用户定义重定向路径
【发布时间】:2022-01-01 08:01:03
【问题描述】:

我在基于 Laravel 8 的门户中定义了两个不同的身份验证守卫,称为“siteusers”和“staffusers”,我在其中使用 Jetstream 和 Fortify 进行基于会话的身份验证。

现在,我为这两种类型的用户提供了两种不同的 URL 结构

  1. www.sitename.com/siteusers/dashboard
  2. www.sitename.com/staffusers/dashboard

我想设置一个算法,如果有人点击上面的第一个链接(未登录),那么他应该被重定向到

如果有人点击第二个链接(未登录),那么他应该被重定向到

在 Fortify 的当前版本中可以吗?

【问题讨论】:

    标签: authentication laravel-8 fortify jetstream


    【解决方案1】:

    转到 app\http\middleware\Authenticate.php

    在上课前添加关注

    use Illuminate\Support\Facades\Route;
    

    然后将 redirectTo 函数中的所有内容替换为以下代码

        $routeMiddleware = Route::current()->middleware();
        // Example Output : Array ( [0] => web [1] => auth:siteusers [2] => verified )
        $route = explode(":", $routeMiddleware[1]);
        $routeName = $route[1];
        if (!$request->expectsJson()) {
            if ($routeName == 'siteusers')
                return route('siteusers.login');
            else
                return route('staffusers.login');
        }
    

    假设:

    1. Siteusers 登录路由名称:siteusers.login
    2. Staffusers 登录路径名称:staffusers.login
    3. Siteusers Auth Guard 的名称:siteusers

    您可以将这些值替换为实际值

    【讨论】:

    • 你节省了我很多时间。这是完美的解决方案。
    猜你喜欢
    • 2021-01-12
    • 2017-01-24
    • 2014-02-04
    • 2017-01-04
    • 2015-02-23
    • 2019-04-25
    • 2020-04-01
    • 2022-12-10
    相关资源
    最近更新 更多