在 Laravel 6 中,将 session 实现替换为对应的 cookie 实现
1、在程序中,是否为预览模式,是基于 session 实现的。但是当用户退出登录时,也会自动退出预览模式。如图1
2、退出预览模式的表现便是页面底部的预览横幅已经消失。如图2
3、参考:Session 重新生成 Session ID ,如果你使用了内置函数 LoginController,Laravel 会自动重新生成身份认证中的 Session ID。最终决定替换为对应的 cookie 实现
4、替换的代码实现依次如下
// $request->session()->forget(XxxService::THEME_PREVIEW_ID); Cookie::queue(Cookie::forget(XxxService::THEME_PREVIEW_ID)); // $request->session()->put(XxxService::THEME_PREVIEW_NAME, $themePreviewName); Cookie::queue(Cookie::make(XxxService::THEME_PREVIEW_NAME, $themePreviewName)); // $request->session()->forget([XxxService::THEME_PREVIEW_ID, XxxService::THEME_PREVIEW_NAME]); Cookie::queue(Cookie::forget(XxxService::THEME_PREVIEW_ID)); Cookie::queue(Cookie::forget(XxxService::THEME_PREVIEW_NAME)); $request->session()->has(XxxService::THEME_PREVIEW_NAME); Cookie::has(XxxService::THEME_PREVIEW_NAME); $request->session()->get(XxxService::THEME_PREVIEW_NAME); Cookie::get(XxxService::THEME_PREVIEW_NAME);
5、测试功能,符合预期,在跳转后的网页的 Cookie 中已经存在新设置的 Key。如图3
近期评论