Laravel 8 Jetstream Livewire 已登录访问首页仍显登录页如何重定向到认证页
问题原因
你当前定义的首页路由没有做登录状态校验,无论用户是否登录都会直接返回登录页视图,不会触发重定向逻辑。
解决步骤
- 第一步:给首页路由添加
guest中间件
修改routes/web.php中的首页路由定义,追加guest中间件即可:
Route::get('/', function () { return view('auth.login'); })->middleware('guest');
guest是Laravel自带的中间件,作用是仅允许未登录的访客访问对应路由,已登录用户访问时会自动重定向到RouteServiceProvider.php中配置的HOME常量地址,你已经将常量设置为/admin,刚好匹配需求。
- 第二步:校验重定向逻辑(可选)
如果添加中间件后不生效,检查app/Http/Middleware/RedirectIfAuthenticated.php文件的handle方法,确认重定向地址配置正确:
public function handle(Request $request, Closure $next, ...$guards) { $guards = empty($guards) ? [null] : $guards; foreach ($guards as $guard) { if (Auth::guard($guard)->check()) { return redirect(RouteServiceProvider::HOME); } } return $next($request); }
确保上述代码中重定向地址为RouteServiceProvider::HOME即可,无需额外修改。
内容的提问来源于stack exchange,提问作者Sylar
相关产品推荐
相关产品推荐

