Koa----Session 的使用

session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。

Session 的工作流程:

当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生 成一个类似于 key,value 的键值对, 然后将 key(cookie)返回到浏览器(客户)端,浏览 器下次再访问时,携带 key(cookie),找到对应的 session(value)。 客户的信息都保存 在 session 中

 

1.安装

npm install koa-session --save

2.引入

const session = require('koa-session');

3.配置

 

4.使用

设置值 ctx.session.username = "张三";

获取值 ctx.session.usernam

 

Cookie 和 Session 区别:

1、cookie 数据存放在客户的浏览器上,session 数据放在服务器上。

2、cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗 考虑到安全应当使用 session。

3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用 COOKIE。

4、单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。

 

案例:

app_session.js

let Koa = require('koa');
let Router = require('koa-router');
let app = new Koa();
let router = new Router();

// 引入设置session
let session = require('koa-session');
//配置session
app.keys = ['some secret hurr'];//相当于是cookie的签名,可以不管
const CONFIG = {
    key: 'koa:sess', //cookie key (default is koa:sess)默认
    maxAge: 86400000, // cookie 的过期时间 maxAge in ms (default is 1 days)
    overwrite: true, //是否可以 overwrite (默认 default true)
    httpOnly: true, //cookie 是否只有服务器端可以访问 httpOnly or not (default true)
    signed: true, //签名默认 true
    rolling: true, //在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false)
    renew: false, //快过期时重新存储 (boolean) renew session when session is nearly expired,
};
app.use(session(CONFIG, app));

router.get('/',async (ctx,next) => {
    //设置值
    ctx.session.username = "张三";
    ctx.body = '登陆成功';
    await next();
})
router.get('/news',async (ctx,next)=>{
    //获取值
    ctx.body =  ctx.session.username
})


app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3007);

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值