javascript - nodejs的cookie疑问
本文介绍了javascript - nodejs的cookie疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
比如所有的用户名都是唯一的,于是我把用户名写到cookie里去,然后根据cookie来识别用户。
首先我不知道这么做对不对。
其次这么做肯定是不安全的。所以我想是不是应该将用户名先加密然后再存到cookie中,那么在node中加密解密cookie用啥实现呢?
先谢过各位了。
解决方案
通常是使用cookie + session的组合,怎么生成session其实你可以不用自己写,Github有现成的实现,比如expressjs/session
cookie里就存储sessionId,这样就不会从cookie里泄漏有用信息(包括可被解密的信息),比存储用户名来说更为安全。
然后使用redis来存储以sessionId为键,用户信息为值的键值对。
都有现成的模块,都不用自己写
大致的代码(koa框架,用到了两个模块koa-session和koa-redis)如下:
const session = require('koa-generic-session');
const redisStore = require('koa-redis');
// 配置好session
app.use(session({
store: redisStore(),
// ttl: 3600000 * 24,
// cookie: {
// path: '/',
// httpOnly: true,
// maxage: null,
// rewrite: true,
// signed: true,
// expires: null,
// },
}));
//...
// 登录成功
this.session.user = user;
这篇关于javascript - nodejs的cookie疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文