如何使用 Jetstream 和 Fortify 在 Laravel8 中为自定义 auth guard 的未经身份验证的用户定义重定向路径
How to define redirect path for unauthenticated users of custom auth guard in Laravel8 using Jetstream and Fortify
我在基于 Laravel 8 的门户中定义了两个不同的身份验证守卫,称为 'siteusers' 和 'staffusers',我在其中使用 Jetstream 和 Fortify 进行基于会话的身份验证。
现在,我有两种不同的 URL 结构供两种类型的用户使用
我想设置一个算法,如果有人从上方点击第一个 link(但未登录),那么他应该被重定向到
如果有人点击第二个 link(未登录),那么他应该被重定向到
在 Fortify 的当前版本中可以吗?
转到app\http\middleware\Authenticate。php
在 class
开始之前添加关注
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.login
- 工作人员登录路由名称:staffusers.login
- Siteusers 的 Auth Guard 名称:siteusers
您可以用实际值替换这些值
我在基于 Laravel 8 的门户中定义了两个不同的身份验证守卫,称为 'siteusers' 和 'staffusers',我在其中使用 Jetstream 和 Fortify 进行基于会话的身份验证。
现在,我有两种不同的 URL 结构供两种类型的用户使用
我想设置一个算法,如果有人从上方点击第一个 link(但未登录),那么他应该被重定向到
如果有人点击第二个 link(未登录),那么他应该被重定向到
在 Fortify 的当前版本中可以吗?
转到app\http\middleware\Authenticate。php
在 class
开始之前添加关注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.login
- 工作人员登录路由名称:staffusers.login
- Siteusers 的 Auth Guard 名称:siteusers
您可以用实际值替换这些值