我正在使用Laravel5 Auth系统进行我的新项目,我能够使用注册和登录功能,但没有按预期工作,但是注册不能正常工作,但是我被重定向到指定的url,$redirectAfterLogout但它不会破坏会话,所以即使在点击之后注销按钮我能看到仪表板.
laravel在Auth系统中有一些错误,请建议,谢谢
Ami*_*ita 17
您尚未提供任何已使用的代码.但是,以下代码有效:
public function getLogout(){
Auth::logout();
Session::flush();
return Redirect::to('/');
}
Run Code Online (Sandbox Code Playgroud)
在Session::flush();清除所有现有会话.
使用Laravel 5.2,我注册了一个监听器,处理了logout事件,并按照上面的建议调用了Session :: flush.似乎工作得很好.希望这是有帮助的.
EventServiceProvider.php
protected $listen = [
'App\Events\SomeEvent' => [
'App\Listeners\EventListener',
],
'Illuminate\Auth\Events\Logout' => [
'App\Listeners\ClearSessionAfterUserLogout'
],
];
Run Code Online (Sandbox Code Playgroud)
ClearSessionAfterUserLogout.php
public function handle(Logout $event)
{
Session::flush();
}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您可能不会到达 logout() 方法。如果您使用 Laravel 5 构建身份验证机制,那么您将运行 AuthenticatesAndRegistersUsers Trait getLogout() 方法,该方法执行以下操作:$this->auth->logout();
找到此代码,编辑如下方法进行调试。如果您看到字符串“Logging out”,那么您必须已注销。否则,您的路由有问题,并且注销永远不会执行。
/**
* Log the user out of the application.
*
* @return \Illuminate\Http\Response
*/
public function getLogout()
{
dd("Logging out");
$this->auth->logout();
return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)