【koa-session】cookie时间过期未清除问题解决

需求:使用koa-session缓存信息

【问题示例】

服务器的koa-session和cors跨域配置:
cors设置origin需重点注意,前端地址写错会影响session。

const Koa = require('koa')
const KoaApp = new Koa()
// koa-session设置
const session = require('koa-session');
// 设置.keys 是cookie密钥
KoaApp.keys = ['my koa session']
const CONFIG = {
    key: 'koa.sess',
    maxAge: 1000 * 10, // ms 10秒
    overwrite:true,
    renew: false,
    rolling: false,
    sameSite: null,
};
KoaApp.use(session(CONFIG, KoaApp));

// 跨域设置
const cors = require('@koa/cors');
KoaApp.use(cors({
    origin: 'http://localhost:8899',
    allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
    allowHeaders: ['Content-Type', 'Authorization', 'Accept'],
    credentials: true
}));

服务器设置session接口:

	router.post('/user/setSession', async (ctx, next) => {
        ctx.session.userInfo = "session数据"
        ctx.body = {
            success: true,
            message:"设置成功"
        };
    })

服务器查询session接口:

	router.post('/user/getSession', async (ctx, next) => {
        console.log("ctx.session.userInfo",ctx.session.userInfo)
        ctx.body = {
            success: true,
            message:"查询成功"
        };
    })

设置前端允许跨域携带凭证

axios.defaults.withCredentials=true //设置跨域请求可以携带凭证

主要问题:cookie设置的时间是10s,按照正常程序走,10s后cookie就不存在了。但发现cookie时间过期未清除!

【解决方法】

1、检查koa-session的maxAge是否设置。
2、检查cookie缓存。检查是否在之前测试过程中,cookie设置了比较长的有效时间,可以在浏览器中F12查看网络请求的cookies。在cookies记录里,查看Max-Age是否和自己设定的有效时间不一。

在这里插入图片描述
3、如果不一样,在Application的cookies中,右键把对应的cookie删除。

在这里插入图片描述
4、最后,重启浏览器和服务器,重新测试接口,cookie在时间过期后自动清除了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值