Laravel5.2会话使用forget()但没有工作

时间:2016-03-24 10:28:26

标签: php laravel session laravel-5.2

我使用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;
}

1 个答案:

答案 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']);
}