Thinkphp的Session

前言

thinkphp的session也不是php的内置session
也是改造过的

session开启

在中间件中开启
这里我在admin应用的中间件中开启

# app/admin/middleware.php
return [
    \think\middleware\SessionInit::class
];
设置session属性
        # $user 是登录的用户信息 将其写入session中
        # 这里使用的session门面
        # 可以替换成session辅助函数
        # session('user', $user->toArray())
        Session::set('user', $user->toArray());
判断session属性是否存在
        # Session::has('user') 判断session 中user是否存在
        # 使用 session 辅助函数可以这么写
        session('?user');
        if (!Session::has('user') && !in_array($request->url(), $this->except)) {
            return redirect('/admin/login');
        }
删除session属性
        # 使用session门面删除user属性
        # 使用session辅助函数 可以这么写 session('user',null);
        Session::delete('user');
获取session属性
        # 获取session中user属性
        # 换成session辅助函数 可以写成 session('user')
        dd(Session::get('user'));

        # 获取session 所有属性
        # 换成session辅助函数可以写成 session()
        dd(Session::all());
session配置

config/session.php

return [
    // session name
    'name'           => 'PHPSESSID',
    // SESSION_ID的提交变量,解决flash上传跨域
    'var_session_id' => '',
    // 驱动方式 支持file cache
    'type'           => 'file',
    // 存储连接标识 当type使用cache的时候有效
    'store'          => null,
    // 过期时间
    'expire'         => 1440,
    // 前缀
    'prefix'         => '',
];

将session存储至redis,解决分布式session问题
修改更改 config/session.php

'type'=> 'cache',
# config/cache.php 需要配置redis连接方式
'store'=> 'redis',

config/cache.php
增加redis配置

return [
    // 默认缓存驱动
    'default' => env('cache.driver', 'file'),

    // 缓存连接方式配置
    'stores' => [
        'file' => [
            // 驱动方式
            'type' => 'File',
            // 缓存保存目录
            'path' => '',
            // 缓存前缀
            'prefix' => '',
            // 缓存有效期 0表示永久缓存
            'expire' => 0,
            // 缓存标签前缀
            'tag_prefix' => 'tag:',
            // 序列化机制 例如 ['serialize', 'unserialize']
            'serialize' => [],
        ],
        'redis' => [
            // 驱动方式
            'type' => 'redis',
            // 服务器地址
            'host' => '127.0.0.1',
            // 服务端口
            'port' => '6379',
            // 服务密码
            'password' => '',
        ],
    ],
];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值