Laravel 保存 session 不成功

场景是测试前后端分离的登陆逻辑,但是出现了在控制器中保存session不成功的情况,默认使用的file驱动(我也测试了数据库保存session,都一样),版本是laravel 5.6,中间件已经启动startsession和跨域了的
1、这是路由:

    // 测试
    Route::get('/sessions/{id?}', function (Request $request, $id = null) {
        if ($id !== null) {
            $request->session()->put($id.'-'.time(), 'xx'.time());
        }
        return $request->session()->all();
    });
    // 用户登陆
    Route::post('/user/login', 'UserController@login');

测试的逻辑是正常的,其写入的session可以保存,之后多次访问 /sessions 返回的session是能看见我之前保存的数据

2、登陆路由逻辑

    public function login(Request $request)
    {
        $data = $request->json()->all();
        if (Auth::attempt(['email' => $data['email'], 'password' => $data['password']])) {
            $user = Auth::user();
            if ($user->vertify == 1) {
                $session_id = time();
                $request->session()->put(time(), $data['email']);
                // $session_id = $request->session()->getId();
                // session()->save();
                $all_sessions = $request->session()->all();
                return [
                    'status' => true,
                    'sessionId' => $session_id,
                    'all_sessions' => $all_sessions
                ];
            } else {
                return [
                    'status' => false,
                    'message' => 'Your account are not vertified. '
                ];
            }
        } else {
            return [
                'status' => false,
                'message' => 'Incorrect Email or Password 。。。。。'
            ];
        }
    }

当登录成功时,第一次立即返回的数据中all_sessions是有我想保存的值的,但是我之后再通过$session_id,$request->session()->all()查询时,并得不到我之前保存的值了。
按网上的说法是因为没有持久化保存session,我试了Session::save()、session->save()、$request->sesson()->save()都没有用。
所以我现在不确定,是我的session没保存成功,还是我之后再去取数据的方法不对

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

检查一下服务器权限,看看是否没有创建文件和写入的权限

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!