Lumen中启用session
原文链接:http://www.jianshu.com/p/dc33f8ab0618
Lumen5.2 的Release Notes中官方明确的指出Lumen专注于构建无状态API,JSON API 服务,移除了session和view的支持,但其实view还是存在的,session确实真的被移除了
因为项目需要所以我决定找回session,虽然官方建议需要session功能时可以使用强大的Laravel框架,但是对我小项目确实有点大材小用了。因为喜欢Laravel的优雅,所以我在小项目中都会把Lumen做为项目的首选。
下面就来一步步找回“丢失”的session吧!
注册SessionServiceProvider
打开bootstrap/app.php,在相应位置添加注册SessionServiceProvider,代码如下
/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
|
*/
// 注册 SessionServiceProvider
$app->register(Illuminate\Session\SessionServiceProvider::class);
// 载入session相关配置
$app->configure('session');
configure函数会从文件中加载配置,并绑定到container中,接下来只需要在项目根目录创建config文件夹,并新建session.php配置文件
<?php
/**
* Created by PhpStorm.
* User: Spectre
* Date: 2017/6/19
* Time: 11:40
*/
return [
'driver' => env('SESSION_DRIVER', 'file'),//默认使用file驱动,你可以在.env中配置
'lifetime' => 120,//缓存失效时间
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/session'),//file缓存保存路径
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => null,
'secure' => false,
];
然后在storage/framework/下建立session文件夹用来存储session缓存,别忘了修改权限
注册StartSession中间件
打开bootstrap/app.php,在Register Middleware位置修改
// bootstrap/app.php
// ...
|--------------------------------------------------------------------------
| Register Middleware
|--------------------------------------------------------------------------
// ...
$app->middleware([
Illuminate\Session\Middleware\StartSession::class
]);
添加Session别名
因为框架中使用了session别名,所以需要添加alias,不然会报错
// bootstrap/app.php
// ...
// 注册 SessionServiceProvider
$app->register(Illuminate\Session\SessionServiceProvider::class); // 载入session相关配置
$app->configure('session'); // 设置session别名
$app->alias('session', 'Illuminate\Session\SessionManager');
使用session
至此,你就可以在代码中使用session了,使用 app('session') 即可获取session实例,示例:
$request->session()->set('user', $users);
$request->session()->get('user');
Lumen中启用session的更多相关文章
- 在Sharepoint 2010中启用Session功能的说明文档
在Sharepoint 2010中启用Session功能的说明文档 开发环境:Windows 7系统,SharePoint Server 2010,Visual Studio 2010 按以下步骤进行 ...
- 解决API中无法使用session问题
处理API无法使用session的方法,贴图: 1调用如下图 2.需要在Global.asax文件中配置一些东西 protected void Application_PostAuthorizeReq ...
- ASP.NET中的Session怎么正确使用
Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换时,Session对象的变量不会被清除. 对于一个Web应用 ...
- ASP.NET中的Session怎么正确使用[转]
Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换时,Session对象的变量不会被清除. 对于一个Web应用 ...
- PHP中有关Session的函数比较多,最常用到的也就这么几个函数
php中的cookie与session技术详解 一.cookie介绍 cookie常用于识别用户.cookie是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送coo ...
- C# asp.net IIS 在web.config和IIS中设置Session过期时间
有时候在web.config设置sessionState 或者类文件里设置Session.Timeout,在IIS里访问时每次都是达不到时间就超时,原因是因为在IIS中设置了Session的超时时间, ...
- 【译文】漫谈ASP.NET中的Session
最近这两天被一个Web Farm环境下的Session处理问题虐得很痛苦,网上到处找解决方案,在无意中翻看到这篇文章,感觉很不错,顺手查了一下,貌似没有现成的译文,于是一咬牙一跺脚把这篇文章翻译出来了 ...
- 关于web会话中的session过期时间的设置
关于web会话中的session过期时间的设置 1.操作系统: 步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置— ...
- Webservice中使用Session、Application
原文:Webservice中使用Session.Application 在Asp.Net 2.0里,已经能够在WebMethod里使用 Session . Application 这种服务器变量了.一 ...
随机推荐
- 打造跨平台.NET Core后台服务
续之前讲的在TopShelf上部署ASP.NET Core程序,作为后台服务运行,自从.NET Core 3.0出现以后,出现了自带的Generic Host,使得自托管服务变为可能.这种方式和Top ...
- 走在深夜的小码农 Sixth Day
Css3 Six Day writer:late at night codepeasant 学习大纲: 一.其他样式 1.圆角边框 在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了. ...
- Jmeter CSV数据文件设置使用之一
第一步: 在Jmeter 里,新建CSV数据文件设置,选择对应的文件,变量名称根据需要自己取,如bug,test,如下图所示: 第二步: 配置Jmetet 数据源,参数对应的名称要与CSV数据文件设置 ...
- spark求相同key的最大值
需求: 求相同key的最大值 [("a", 3), ("a", 2), ("a", 5), ("b", 5), ...
- leetcode21 surrounded regions
题目描述 现在有一个仅包含'X'和'O'的二维板,请捕获所有的被'X'包围的区域 捕获一个被包围区域的方法是将被包围区域中的所有'O'变成'X' 例如 X X X X↵X O O X↵X X O X↵ ...
- 【Java】线程的创建方式
1.继承Thread类方式 这种方式适用于执行特定任务,并且需要获取处理后的数据的场景. 举例:一个用于累加数组内数据的和的线程. public class AdditionThread extend ...
- 内网渗透 day14-empire基础命令的使用
empire的基础操作 目录 1. 建立监听器 2. 设置stagers 3. 用户交互 4. 提权 1. 建立监听器 help 查看帮助命令 listeners 查看监听器 useli ...
- jupyter使用自动补全和切换默认浏览器
自动补全 可以做conda环境中执行以下命令.linux下打开conda环境的命令是: conda activate 退出conda环境的命令是: conda deactivate 安装插件: pip ...
- fcntl函数用法——复制文件描述符
文件描述符复制和输出重定向dup() 用最小的文件描述符来复制,从0开始搜素.复制文件描述符后,最小文件描述符指向被复制描述符指向的文件.dup2(int oldfd,int newfd) 强制用ne ...
- 《GNU_makefile》第六章——变量
makefile中的变量特征和C语言中的宏一样. 变量使用 =,:=,?= 和 define 定义 一些特殊的自动化变量:$< $@ $^ $* 1.变量的引用 通过 $(VAR) 或 ${VA ...