【发布时间】:2020-04-14 10:44:07
【问题描述】:
我正在 Homestead 上运行 Laravel 6。我在这里看到了类似的错误,但没有针对我的情况。
- 如果我登录,那很好。
- 如果我直接退出,也可以。
- 如果我让屏幕超时超过 .env 中设置的 session_lifetime,它不会在没有此错误的情况下注销。
Argument 1 passed to Illuminate\Session\Middleware\StartSession::addCookieToResponse()
must be an instance of Symfony\Component\HttpFoundation\Response, string given,
called in /home/vagrant/code/MySite/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php on line 60
我正在学习 Laravel 并来自 vanilla php,我不知道从哪里开始寻找。提前致谢。
我在 web.php 中使用 Auth:routes() 时无权访问登录路由。我想我可能已经通过覆盖 logout() 解决了这个问题。似乎有点简单。想知道这是否安全?
public function logout(Request $request){
Auth::logout();
return redirect()->route('home');
}
编辑,抱歉,这并不能解决我的问题。它在活动会话时间内有效,但在此之外我有同样的问题
不幸的是,这对我不起作用。我看到了为什么它应该但同样的错误显示的逻辑。作为一个实验,我只是在注销方法中自己返回了“hello world”,果然它只是显示在注销页面上,没有错误。但是如果我这样做,我会得到与上面相同的错误(没有注销功能只是一个 rtn 视图)
public function logout(Request $request){
//if (Auth::check()) {
// Auth::logout();
//}
//return redirect()->route('home');
//$request->session()->flush();
return view('front.pages.aboutus');
//return "hello world";
}
如您所见,我也一直在尝试使用 flush(),但没有任何乐趣。
【问题讨论】: