我在基于 Laravel 8 的门户中定义了两个不同的身份验证保护,称为“siteusers”和“staffusers”,其中我使用 Jetstream 和 Fortify 进行基于会话的身份验证。
现在,我对两种型别的用户都有两种不同的 URL 结构
- www.sitename.com/siteusers/dashboard
- 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');
}
假设:
- Siteusers 登录路径名称:siteusers.login
- Staffusers 登录路径名称:staffusers.login
- Siteusers 的 Auth Guard 名称:siteusers
您可以用实际值替换这些值
0 评论