我使用 Laravel5.2 构建电子商务平台并遇到了一些麻烦。当我注销用户状态并使用 Session::forget('user')
或 $request ->session()->forget('user')
,它在当前页面有效,我重定向到登录页面并 dd(Session::all())
找到 session “用户”仍然存在!!!所以我很困惑知道有什么问题吗?请告诉我原因,谢谢大家。
附言。登出码
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;
}
最佳答案
在发送响应并触发事件/中间件之前, session 不会被保存。
尝试做:
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']);
}
关于php - Laravel5.2 Session 使用 forget() 但没有工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197992/