iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >详解Node.js开发中的express-session
  • 170
分享到

详解Node.js开发中的express-session

详解Nodejs 2022-06-04 17:06:24 170人浏览 薄情痞子
摘要

什么是session session是保存在服务器端的会话。session的典型应用场景是用户登录某网站之后,将其登录信息放入session,在以后的每次请求中查询相应的登录信息以确保该用户合法。比如购物车

什么是session

session是保存在服务器端的会话。session的典型应用场景是用户登录某网站之后,将其登录信息放入session,在以后的每次请求中查询相应的登录信息以确保该用户合法。比如购物车等等经典场景

为什么要使用session

谈及session一般是在WEB应用的背景之下,我们知道web应用是基于Http协议的,而HTTP协议恰恰是一种无状态协议。也就是说,用户从A页面跳转到B页面会重新发送一次HTTP请求,而服务端在返回响应的时候是无法获知该用户在请求B页面之前做了什么的。

而正是这种web动态化的需求,给HTTP协议提出了一个难题:一个无状态的协议怎样才能关联两次连续的请求呢?也就是说无状态的协议怎样才能满足有状态的需求呢?

此时有状态是必然趋势而协议的无状态性也是木已成舟,因此我们需要一些方案来解决这个矛盾,来保持HTTP连接状态,于是出现了cookie和session。

session与cookie的关系

上面提到解决HTTP协议自身无状态的方式有cookie和session。二者都能记录状态,前者是将状态数据保存在客户端,后者则保存在服务端。

安全

cookie将信息保存在客户端,如果不进行加密的话,无疑会暴露一些隐私信息,安全性很差,一般情况下敏感信息是经过加密后存储在cookie中,但很容易就会被窃取。而session只会将信息存储在服务端,如果存储在文件或数据库中,也有被窃取的可能,只是可能性比cookie小了太多。

Session安全性方面比较突出的是存在会话劫持的问题,这是一种安全威胁,总体来讲,session的安全性要高于cookie。

express框架之session 内存存储

express-session 是基于express框专门用于处理session的中间件。session的认证机制离不开cookie,需要同时使用cookieParser 中间件。


var express = require('express');
var session = require('express-session');
var cookieParser = require('cookie-parser');

var app = express();

app.use(cookieParser());
app.use(session({
  secret: '12345',
  name: 'testapp',  //这里的name值得是cookie的name,默认cookie的name是:connect.sid
  cookie: {maxAge: 80000 }, //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
  resave: false,
  saveUninitialized: true,
}));


app.get('/awesome', function(req, res){
  
  if(req.session.lastPage) {
    console.log('Last page was: ' + req.session.lastPage + ".");  
  }  
  req.session.lastPage = '/awesome'; //每一次访问时,session对象的lastPage会自动的保存或更新内存中的session中去。
  res.send("You're Awesome. And the session expired time is: " + req.session.cookie.maxAge);
});

app.get('/radical', function(req, res){
  if (req.session.lastPage) {
    console.log('Last page was: ' + req.session.lastPage + ".");  
  }
  req.session.lastPage = '/radical'; 
  res.send('What a radical visit! And the session expired time is: ' + req.session.cookie.maxAge);
});

app.get('/tubular', function(req, res){
  if (req.session.lastPage){
    console.log("Last page was: " + req.session.lastPage + ".");  
  }

  req.session.lastPage = '/tubular';
  res.send('Are you a suffer? And the session expired time is: ' + req.session.cookie.maxAge);
});


app.listen(5000);

一旦我们将express-session中间件用use挂载后,我们可以很方便的通过req参数来存储和访问session对象的数据。req.session是一个JSON格式的javascript对象,我们可以在使用的过程中随意的增加成员,这些成员会自动的被保存到option参数指定的地方,默认即为内存中去。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 详解Node.js开发中的express-session

本文链接: https://www.lsjlt.com/news/12618.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解Node.js开发中的express-session
    什么是session session是保存在服务器端的会话。session的典型应用场景是用户登录某网站之后,将其登录信息放入session,在以后的每次请求中查询相应的登录信息以确保该用户合法。比如购物车...
    99+
    2022-06-04
    详解 Node js
  • node.js中express-session配置项详解
    官方地址:阅读 作用:用指定的参数创建一个session中间件,sesison数据不是保存在cookie中,仅仅sessionID保存到cookie中,session的数据仅仅保存在服务器端 警告:默认...
    99+
    2022-06-04
    详解 js node
  • node.js 中间件express-session使用详解
    本文介绍的关于node.js中间件express-session的相关内容,分享出来供大家从参考学习,下面来一起看看详细的介绍: 一、为什么使用session? session运行在服务器端,当客户端第...
    99+
    2022-06-04
    详解 中间件 js
  • node.js express中app.param的用法详解
    前言 大家应该都知道,express中app.param方法用于验证参数,我个人把它理解成类似对参数过滤的一个中间件。在这里我来结合几个demo,加深大家对app.param方法的理解。下面话不多说,来一起...
    99+
    2022-06-04
    详解 js node
  • 详解node.js平台下Express的session与cookie模块包的配置
    首先下载两个模块包 session模块包:用于保持登录状态或保持会话状态等。 npm install express-session --save-dev cookie模块包:用于解析cookie。 ...
    99+
    2022-06-04
    详解 模块 平台
  • Node.js中Express框架的使用教程详解
    目录Express简介Express生成器1. 什么是Express生成器2. 安装Express生成器创建Express项目安装项目依赖运行Express项目Express目录结构...
    99+
    2022-11-13
  • node.js中express中间件body-parser的介绍与用法详解
    前言 Node中的核心模块分两类:一类是自带的核心模块,如http、tcp等,第二类是第三方核心模块,express就是与http对应的第三方核心模块,用于处理http请求。express在3.0版本中自带...
    99+
    2022-06-04
    详解 中间件 js
  • express的中间件basicAuth详解
    basicAuth中间件为网站添加身份认证功能.在使用了该中间件后, 用户访问网站时必须输入用户名与密码,在用户输入了用户名与密码并通过验证之后才能访问网站. 当用户输入的用户名和密码符合条件,中间件会返回...
    99+
    2022-06-04
    详解 中间件 express
  • express的中间件bodyParser详解
    bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理,url编码处理以及对于文件的上传处理. 下面是一个文件上传的例子. 建立一个1.html页面 <!DOCTYPE ...
    99+
    2022-06-04
    详解 中间件 express
  • express的中间件cookieParser详解
    cookieParser中间件用于获取web浏览器发送的cookie中的内容.在使用了cookieParser中间件后, 代表客户端请求的htto.IncomingMessage对象就具有了一个cookie...
    99+
    2022-06-04
    详解 中间件 express
  • node中的Express框架详解
    目录Express框架1.什么是框架2.express安装3.创建web服务4.路由5.模板引擎 什么是模板引擎原理在express中使用模板引擎设置模板引擎后缀ejs的标...
    99+
    2023-05-17
    node 框架 node Express框架
  • Node.js编程中客户端Session的使用详解
    静态网站很容易扩展。你只需要全部缓存,不需要考虑从不同服务器组合有状态的内容给用户。 可惜,大多数Web应用使用有状态的内容提供个性化体验。如果你的应用可以登录,就需要记住用户的Session。经典的处理...
    99+
    2022-06-04
    详解 客户端 Node
  • Java中Session的详解
    目录1.什么是session:2.session的经典应用场景:3.session中常用的方法4.举例5.session与cookie的区别1.什么是session: 服务器会给每一...
    99+
    2022-11-12
  • 初学者如何快速搭建Express开发系统步骤详解
    1、序言   下班回来,孩子跟妻子没在家。我吃完留在锅里的饭菜,就准备开始躺在沙发里去刷抖音。可这难得的安静不去干一些写作整理的事情,的确是挺奢侈的。 &emsp...
    99+
    2023-05-20
    Express 开发系统 node.js
  • java开发web前端cookie session及token会话机制详解
    目录引入:概念:一、cookie机制1、基本介绍2、分类3、cookie的作用域4、基本原理5、常用API6、基本应用7、Cookie中存储中文问题二、session机制1、基本介绍...
    99+
    2022-11-12
  • 快速使用node.js进行web开发详解
    首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发。相信这是一个...
    99+
    2022-06-04
    详解 快速 js
  • 详解Node.js如何开发命令行工具
    前言 Node 给前端开发带来了很大的改变,促进了前端开发的自动化,我们可以简化开发工作,然后利用各种工具包生成生产环境。如运行sass src/sass/main.scss dist/css/main.c...
    99+
    2022-06-04
    命令行 详解 工具
  • 详解Node.js 命令行程序开发教程
    一种编程语言是否易用,很大程度上,取决于开发命令行程序的能力。 Node.js 作为目前最热门的开发工具之一,怎样使用它开发命令行程序,是 Web 开发者应该掌握的技能。 下面就是我在它的基础上扩展的教程...
    99+
    2022-06-04
    命令行 程序开发 详解
  • 详解Android 开发中的线程
    今天就跟大家聊聊有关详解Android 开发中的线程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android 开发中线程的分析代码:package sw.angel.thread...
    99+
    2023-05-31
    android 线程 roi
  • 一文详解Node中express的身份认证
    基于前后端分离的新型Web开发模式前后端分离的概念:前后端分离的开发模式,依赖于Ajax技术的广泛应用。简而言之,前后端分离的Web开发模式,就是后端只负责提供API接口,前端使用Ajax调用接口的开发模式。前后端分离的优缺点优点:1)开发...
    99+
    2023-05-14
    node Express
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作