laravel session详解

以下内容希望帮助到大家!

attachments-2020-08-uG9dx4A05f364a32a0dd7.png

众所周知,每一个session都要经历从启用,存取,到最后的删除这样一个过程,在laravel中是如何处理session的呢?在laravel里,没有使用PHP内置的 session功能,而是自己开发了新的Session,并且通过中间件直接帮我们开启了Session,那么它是如何启用的,又是怎么处理生命周期的呢,并且都有哪些可以供我们使用的方法呢,一起探讨一下.


laravel Session的启用:

在laravel的核心类文件中(app/Http/Kernel.php)我们可以看到StartSession中间件在优先启用的中间件中位列第一,

v2-13f6af094dec0c5951d873297e7bc0c8_720w.jpg

打开StartSession.php这个文件,在这里,我们不仅可以看到具体的启用session方法,还可以看到处理session生命周期的函数

protected function getSessionLifetimeInSeconds()
    {
        //调用SessionManager.php文件中的getSessionConfig函数,获取session配置文件中的'lifetime'参数,在这个参数里设置了session的生命周期时间.
        return ($this->manager->getSessionConfig()['lifetime'] ?? null) * 60;
    }


相关Session方法

在Illuminate\Session\Store.php目录中,我们可以看到为Session量身定制的一些方法,这些方法,在实现Auth快速创建登录和注册功能时都有被用到,感兴趣的话,可以打开该文件去查看


Session配置

Session 配置文件位于 config/session.php,

'driver' => env('SESSION_DRIVER', 'file'),    //session驱动,默认为flie驱动
    'lifetime' => env('SESSION_LIFETIME', 120),      //生命周期,默认为120分钟
    'expire_on_close' => false,    //关闭浏览器是否自动删除session
    'encrypt' => false,    //存储的session数据是否需要加密
    'files' => storage_path('framework/sessions'),    //file驱动保存路径,默认为storage/framework/sessions/下
    'connection' => env('SESSION_CONNECTION', null),    //如果使用数据库驱动或者redis驱动时,连库管理session
    'table' => 'sessions',     //使用数据库驱动时,创建的session表名 
    'store' => env('SESSION_STORE', null),    //使用apc 或者memcached驱动的配置
    'lottery' => [2, 100],    //清除旧session
    'cookie' => env(    //cookie名称
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),    
    'path' => '/',    //cookie
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE', false),
    'http_only' => true,    //将此值设置为true将阻止JavaScript访问cookie的值
    'same_site' => null,

通过这里我们可以看到在.env环境中有与session对应的相关参数,如果需要,可以自由定义


修改配置的方法

  • 手动修改config目录下的session文件
  • 使用config()函数,例如
config('session.lifetime');//直接获取session文件中'lifetime'这个参数
config(['session.lifetime'=>'20']);//则是直接修改


attachments-2020-08-zTi4ckUE5f3649b07a135.jpg

  • 发表于 2020-08-14 16:24
  • 阅读 ( 152 )
  • 分类:框架系列

0 条评论

请先 登录 后评论
阿梓
阿梓

879 篇文章

作家榜 »

  1. 阿梓 879 文章
  2. p270228163 0 文章
  3. 陈洋 0 文章
  4. 维子老师 0 文章
  5. gyy 0 文章
  6. 花橙 0 文章
  7. 朱利海 0 文章
  8. 小熊 0 文章