Egg.js 中 Session 的使用
时间:2020-06-11
本文章向大家介绍Egg.js 中 Session 的使用,主要包括Egg.js 中 Session 的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、 Session简单介绍
session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。
二、 Session的工作流程
当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一 个类似于 key,value 的键值对, 然后将 key(cookie)返回到浏览器(客户)端,浏览器下次再 访问时,携带 key(cookie),找到对应的 session(value)。
三、 Egg.js中session的使用:
egg.js 中 session 基于 egg-session 内置了对 session 的操作
设置:
this.ctx.session.userinfo={ name:'张三',
age:'20' }
获取:
var userinfo=this.ctx.session
Session 的默认设置:
exports.session = { key: 'EGG_SESS', maxAge: 24 * 3600 * 1000, // 1 day httpOnly: true, encrypt: true };
四、 Session在config.default.js中的配置
config.session={ key:'SESSION_ID', maxAge:864000, renew: true //延长会话有效期 }
五、 Cookie和Session区别
1、cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
2、cookie 相比 session 没有 session 安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE欺骗。
3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用 COOKIE。
4、单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。
demo :
home.js控制器
'use strict'; const Controller = require('egg').Controller; class HomeController extends Controller { async index() { //设置session this.ctx.session.username='张三'; this.ctx.session.userinfo={ name:'李四', age:20 } //设置session的过期时间 修改session的默认参数 不建议用这样的方式 // this.ctx.session.maxAge=5000; await this.ctx.render('home'); } } module.exports = HomeController;
new,js 控制器
'use strict'; const Controller = require('egg').Controller; class NewsController extends Controller { async index() { var username=this.ctx.session.username; var userinfo=this.ctx.session.userinfo; //设置session的过期时间 修改session的默认参数 不建议用这样的方式 // this.ctx.session.maxAge=5000; console.log(userinfo); await this.ctx.render('news',{ username:username }); } } module.exports = NewsController;
config.default.js
'use strict'; module.exports = appInfo => { const config = exports = {}; //配置session session的配置和cookie基本是一样的,可以使用cookie里面的配置 config.session={ key:'SESSION_ID', //设置session cookie里面的key maxAge:30*1000*60, httpOnly:true, encrypt:true, renew:true //renew等于true 那么每次刷新页面的时候 session都会被延期 } // add your config here config.middleware = []; //配置模板引擎 config.view = { mapping: { '.html': 'ejs', }, }; return config; };
原文地址:https://www.cnblogs.com/loaderman/p/11547809.html
- 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
- 神经网络 之 感知器的概念和实现
- 图解ByteBuffer
- TensorFlow-1: 如何识别数字
- 你应该知道的Java垃圾收集器 - 串行、并行、CMS、G1
- ckplayer 如何在PC上完美支持 m3u8播放
- TensorFlow-2: 用 CNN 识别数字
- js图片前端预览之 filereader 和 window.URL.createObjectURL
- TensorFlow-3: 用 feed-forward neural network 识别数字
- TensorFlow-4: tf.contrib.learn 快速入门
- TensorFlow-5: 用 tf.contrib.learn 来构建输入函数
- 前后端分离之vue2.0+webpack2 实战项目 -- html模板拼接
- 抛弃vue-resource拥抱axios
- TensorFlow-6-TensorBoard 可视化学习
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 谷歌浏览器油猴插件安装教程,让你的浏览器更加强大
- zabbix模块配置学习
- Windows下安装及使用NVM
- U盘上安装多个Linux发行版和PE
- ubuntu18.04部署python3、nginx项目
- CentOS8.x系统配置记录
- js根据经纬度换算行驶里程
- ubuntu18.04 安装docker
- COBBLER无人值守批量安装系统.md
- 使用VSCode 打包你的第一个flutter应用(安卓篇)
- KICKSTART无人值守批量安装系统.md
- Centos7-Firewall防火墙基础讲解
- 优酷iOS插件化页面架构方法
- 处理一次k8s、calico无法分配podIP的心路历程
- 小视频源码,按返回键两次退出