Php laravel 5.4中会话超时时如何重定向到路由注销

Php laravel 5.4中会话超时时如何重定向到路由注销,php,laravel,session,laravel-5,Php,Laravel,Session,Laravel 5,当会话在laravel 5.4中有超时时,我想将重定向到注销路径 我在app\exception\handler.php if ($e instanceof TokenMismatchException) { return redirect()->route('logout'); } 但它仍然不起作用。会话超时时,您基本上不再登录,我该怎么办 您是否在需要用户使用auth中间件登录的地方保护您的路由?我认为你

会话
laravel 5.4中有
超时时,我想将
重定向到
注销路径

我在
app\exception\handler.php

    if ($e instanceof TokenMismatchException) {                       
         return redirect()->route('logout');
    }

但它仍然不起作用。会话超时时,您基本上不再登录,我该怎么办

您是否在需要用户使用
auth
中间件登录的地方保护您的路由?我认为你错过了那一步

如果用户未登录(或超时),受
auth
中间件保护的路由将自动重定向到
/login
(可以更改路由)


查看文档的这一部分:

如果某人的会话已过期,我不确定您是否可以注销。我想重定向到注销,因为当我登录时,我会将其保留到会话超时。当我刷新页面时,页面将显示错误“尝试获取非对象的属性”@haakym any help??看一看@Maraboc好的,我在路由中尝试这段代码,如果(Auth::guest()){return back()->withInput();}否则{return redirect('/viewproduct');}可以,但我需要在所有路由中完整地编写它。知道吗?是的,我用auth完成了路由保护,但我需要在所有路由中编写相同的代码。如果(Auth::guest()){return back()->withInput();}或者{return redirect('/viewproduct');}好的,然后进行后续操作。您在
handler.php
中将
if($e instanceof tokenmischException)
放在哪里了?它应该位于
returnparent::render
行上方的
render()
方法中。另外,请确保使用
use-illumb\Session\tokenmischException导入正确的tokenmischException。很难说没有看到更大的画面,但我会再次检查您是否正确使用了
auth
中间件,因为如果会话中没有存储有效的用户,您永远不应该进入控制器操作。如果我在route route::group(['middleware'=>['guest']]中这样写,函数(){return redirect()->route('login');};当验证guest时,它将始终返回登录??否,请查看有关如何使用
auth
guest
中间件的Laravel文档:。如果希望用户通过身份验证来访问路由,请使用
auth
中间件。如果希望用户未经身份验证,请使用
guest