当用户会话处于活动状态时使用 Laravel 5.7 中的 Auth 重定向到页面的方法
Posted
技术标签:
【中文标题】当用户会话处于活动状态时使用 Laravel 5.7 中的 Auth 重定向到页面的方法【英文标题】:Way to redirect to a page when user's session is active using Auth in Laravel 5.7 【发布时间】:2019-03-11 13:44:20 【问题描述】:我正在使用 Laravel 5.7 开发一个项目,并且尝试在有活动会话时重定向到路由。目前我已经尝试将此代码放在我的视图顶部,但它似乎不起作用。
@php
if(!empty(Auth::user()))
header('Location: '.route('dashboard'));
@endphp
我的代码有错误吗?还是有另一种方法可以做我正在尝试的事情? 提前致谢!
【问题讨论】:
为什么不在控制器里做呢? @Ash-b 谢谢我把代码放在控制器中,现在它可以工作了。 【参考方案1】:您不需要在视图文件中进行重定向,您可以在路由文件中使用 auth 中间件,如下所示
<?php
//route which don't required login session
Route::group(['middleware'=>'auth'],function()
//list of routes which you need to access after login
);
?>
您不需要登录会话的路由,您可以在上述范围之外编写
【讨论】:
【参考方案2】:为什么要在视图中检查类似的东西,你应该在返回视图之前在控制器中检查它。
无论如何,这是您可以在刀片模板中使用的内容
@if(Auth::user())
<script>window.location = "/dashboard";</script>
@else
<script>window.location = "/login";</script>
@endif
请记住,如果 auth::user 为空,则表示用户未注册,但您也可以使用 Auth::guest() 进行检查,表示用户尚未注册。
希望对您有所帮助。
【讨论】:
以上是关于当用户会话处于活动状态时使用 Laravel 5.7 中的 Auth 重定向到页面的方法的主要内容,如果未能解决你的问题,请参考以下文章
仅当用户在 Laravel 5.7 中处于活动状态时才登录用户
Laravel 5.4 检查用户是不是处于活动状态,如果没有则回复消息
Laravel 身份验证在 laravel 5.3 中无法正常工作