拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何在Laravel8中使用Jetstream和Fortify为未经身份验证的自定义身份验证保护用户定义重定向路径

如何在Laravel8中使用Jetstream和Fortify为未经身份验证的自定义身份验证保护用户定义重定向路径

白鹭 - 2022-02-02 2097 0 0

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

现在,我对两种型别的用户都有两种不同的 URL 结构

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

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

  • www.sitename.com/siteusers/login

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

  • www.sitename.com/staffusers/login

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

uj5u.com热心网友回复:

转到 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

您可以用实际值替换这些值

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *