Node学习(九)064-会话技术简介之session的设置和获取——设置与获取之express-session模块& session有效期& 删除session& cookie和session的原理
3. session技术
3.1 session介绍
- 因为cookie是保存在客户端的数据,不够安全,所以出现了session。
- session会将数据保存到服务器端(保存在文件、内存服务器或数据表中),安全性就可以得到保证。
3.2 设置/读取session
express设置session时,需要使用第三方模块 — express-session
npm i express-session # 也可以使用 cookie-session 模块 https://github.com/expressjs/session
使用步骤:
- 加载 express-session 模块
- 将session注册为中间件(这样,当有请求过来的时候,都会先经过中间件)
- 使用
req.session
对象设置/读取session
//1. 加载 express-session 模块 const session = require('express-session'); //2. 配置项 let conf = {
secret: '4ey32erfyf3fgpg', //加密字符串。 使用该字符串来加密session数据,自定义 resave: false, //强制保存session即使它并没有变化 saveUninitialized: false //强制将未初始化的session存储。当新建了一个session且未 //设定属性或值时,它就处于未初始化状态。 }; //3. 注册为express-session中间件 app.use(session(conf)); app.get('/test1', (req, res) => {
// 设置session req.session.yzm = '7890'; res.send('session设置成功'); }); app.get('/test2', (req, res) => {
console.log(req.session.yzm); res.send('获取成功'); }); app.get('/test3', (req, res) => {
console.log(req.session.yzm); res.send('获取成功'); });
4)在session文件夹下,执行命令,启动服务
nodemon ./app.js #或者 node ./app.js
服务启动效果
页面验证效果——test1设置成功、test2获取成功
3.3 session有效期
- 当服务器关闭后,session消失
- express-session会将session保存在内存中,每次重启服务器时即使没有关闭浏览器session也会消失
学习阶段都是开发环境,服务器一会关闭了,一会开启了。
开发环境中,session是保存在内存中的,所以关闭服务器,session就消失了
生产环境中session的有效期要设置在配置项中,
cookie: {maxAge: }
,session应该保存到内存服务器中
3.4 删除session
核心: req.session.destroy() 销毁所有session
// 删除所有session req.session.destroy((err) => {
if (err) {
// 删除失败 } else {
// 删除成功 } });
3.5 session 的有效范围
在一个网站中设置了session,则整个网站都能找到这个session
4. cookie、session原理
cookie原理:
session原理:
服务器端会为每个用户(浏览器)各自保存一个session(文件)
下次用户再来访问的时候,就不能确定该用户的session是哪一个了
所以当服务器保存session之后,会以cookie的形式告诉浏览器,你的session是哪一个
下次再来访问服务器的时候,浏览器就会带着它自己的session号去访问,服务器就可以找到对应的session了
到此这篇Node学习(九)064-会话技术简介之session的设置和获取——设置与获取之express-session模块& session有效期& 删除session& cookie和session的原理的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-nodejs/10827.html