Laravel 5.4.36 session 发现
2024-08-31 01:46:12
由于Laravel session机制完全脱离了PHP自带的session机制 因此对于php.ini 配置session对Laravel 是不会产生影响
代码路径: vendor/laravel/framework/src/Illuminate/Session/Store.php
验证猜测 魔术方法 __construct
/**
* Create a new session instance.
*
* @param string $name
* @param \SessionHandlerInterface $handler
* @param string|null $id
* @return void
*/
public function __construct($name, SessionHandlerInterface $handler, $id = null)
{
$this->setId($id);
$this->name = $name;
$this->handler = $handler;
}
关于其中的ID 就是我们说的sessionID
查看 setId()
/**
* Set the session ID.
*
* @param string $id
* @return void
*/
public function setId($id)
{
$this->id = $this->isValidId($id) ? $id : $this->generateSessionId();
}
如果id 为空 调用 generateSessionId()
/**
* Get a new, random session ID.
*
* @return string
*/
protected function generateSessionId()
{
return Str::random(40);
}
方法 Str::random(40) 文件 :vendor/laravel/framework/src/Illuminate/Support/Str.php
/**
* Generate a more truly "random" alpha-numeric string.
*
* @param int $length
* @return string
*/
public static function random($length = 16)
{
$string = ''; while (($len = strlen($string)) < $length) {
$size = $length - $len; $bytes = random_bytes($size); $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size);
} return $string;
}
可见 sessionID 使用的是本地的ID生成40位长度的字符串
如果有兴趣的同学 可以验证 在控制器方法中 使用原生的session方法 查看返回http头中的信息
最新文章
- 转载 NPOI Excel 单元格背景颜色对照表
- stm32 cubemx hal 工程中 微秒延迟 delay_us
- JavaScript 字符串常用操作
- rails查询mongodb通用查询
- javascript基础知识-数组
- 获取PC或移动设备的所有IP地址
- Eclipse系列:如何断点调试web项目
- php模式设计之 适配器模式
- servlet的url-pattern匹配规则
- ICE第四篇-----python版本
- VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)
- 【ANT】description元素和属性
- web层直接调用 dubbo的服务,合适吗?
- xpath 中 [<;Element a at 3985984dj343>;]
- MYSQL 获取当前星期方法
- web前端常见面试题汇总
- Android应用开发中,第三方集成新浪微博(sinaWeiboSDK)的过程记录
- AJAX 实战【三级联动】分析
- Apache和Tomcat的区别?
- Vue实例data对象里允许有哪些类型数据
热门文章
- Maven_运行时环境
- 【Codeforces 567D】One-Dimensional Battle Ships
- POJ 2217 Secretary
- nyoj 911 Registration system(map)
- poj 3253 Fence Repair(priority_queue)
- Project导入错误 36D27C48
- IOS开发之block应用
- 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别
- automaticallyAdjustsScrollViewInsets 使用
- Android资源文件命名规范