php - Laravel5.2 Session 使用 forget() 但没有工作

标签 php laravel session laravel-5.2

我使用 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/

相关文章:

javascript - ASP.Net SessionID 在打开新浏览器时保持保留

现有类对象中的 PHP 匿名函数声明

php - 获取经过月份和年份的周数 php

javascript - 如何使用 jquery 将值列表发送到 php

laravel - 从 Laravel 发送网络推送通知

c# - 为什么session对象会抛出空引用异常?

php - 计算 CSV 列中相似值的数量

Laravel valet secure 不起作用,删除后 nginx 信息来自哪里?

php - Laravel:如何设置全局可用的默认路由参数

php - 使用服务器端脚本启动 SESSION