工作中又遇到了session问题,于是整理一下有关thinkjs中的session使用小方法:
需要用户登录的网站基本上都离不开 Session,ThinkJS 里默认支持多种类型的 Session,如:file
,db
,redis
等。
支持的 Session 类型:
-
memory
内存方式 -
file
文件类型 -
db
数据库类型 -
redis
Redis 类型
使用 redis
类型的 Session 需要配置 Redis,具体配置为:
redis 配置,config/redis.js
。
export default {
host: "127.0.0.1",
port: 6379,
password: "",
timeout:24*60*60, //一天
log_connect: true
};
Session 默认配置如下,可以在 src/common/config/session.js
中进行修改:
export default {
type: "file",
name: "thinkjs", //对应 cookie 的名称
secret: "", //Session 对应的 cookie 是否需要加密
timeout: 24 * 3600, //过期时间,默认为一天
cookie: { // cookie options
length: 32
},
adapter: {
file: {
path: think.RUNTIME_PATH + "/session"
}
}
};
关于cookie的配置,config/cookie.js
export default {
type: "file",
name: "thinkjs", //对应 cookie 的名称
secret: "", //Session 对应的 cookie 是否需要加密
timeout: 24 * 3600, //过期时间,默认为一天
cookie: { // cookie options
length: 32
},
adapter: {
file: {
path: think.RUNTIME_PATH + "/session"
}
}
};
1.清除session
await this.session();
2.设置session
this.session('ticket_weixinshare',ticket);//key value形式
3.读取session
await this.session("ticket_weixinshare");//用key值获取session
总结:其实之前的自己,每次一遇到有关session的问题,就会默默的给自己施加压力,并告诉自己:这个很难,不好解决,于是不由自主的头就疼了……不过随着入手的项目越多,慢慢的意识到原来有关session的问题并不是那么的头疼,反而是自己形成了错误的思维定式!以后,改正缺点~