我使用Laravel5.2构建电子商务平台并遇到麻烦。当我登出用户状态并使用Session::forget('user')
或$request->session()->forget('user')
时,它在当前页面中有效,我重定向到登录页面和dd(Session::all())
找到会话'用户'还存在!!!所以我很困惑知道它有什么问题?请告诉我原因,谢谢大家。
PS。登出代码
public function logout(Request $request)
{
if ($request->session()->has('user')) {
$is_forgotten = $request->session()->forget('user');
if ($is_forgotten === null)
echo json_encode(['result' => 1]);
exit;
}
echo json_encode(['result'=>0,'msg'=>'loginout error']);
exit;
}
答案 0 :(得分:0)
在发送响应并触发事件/中间件之前,会话不会保存。
尝试做:
public function logout(Request $request)
{
if ($request->session()->has('user')) {
$is_forgotten = $request->session()->forget('user');
if ($is_forgotten === null)
return Response::json(['result' => 1]);
return '';
}
return Response::json(['result'=>0,'msg'=>'loginout error']);
}
或者如果您使用帮助者:
public function logout(Request $request)
{
if ($request->session()->has('user')) {
$is_forgotten = $request->session()->forget('user');
if ($is_forgotten === null)
return response()->json(['result' => 1]);
return '';
}
return response()->json(['result'=>0,'msg'=>'loginout error']);
}