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
。