登录状态的保存Session

登录状态的保存Session

Session是什么

Session一般译作会话,牛津词典对其的解释是进行某活动连续的一段时间。从不同的层面看待session,它有着类似但不全然相同的含义。比如,在web应用的用户看来,他打开浏览器访问一个电子商务网站,登录、并完成购物直到关闭浏览器,这是一个会话。而在web应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做session。因此在谈论session的时候要注意上下文环境。而本文谈论的是一种基于HTTP协议的用以增强web应用能力的机制或者说一种方案,它不是单指某种特定的动态页面技术,而这种能力就是保持状态,也可以称作保持会话。

登录状态的保存可以使用客户端存储如cookie

但是安全性不高,并且cookie容易伪造

session(会话)保存登录状态相对安全,

例:
session相当于一个超市物品存放柜,当你放一个东西之后会给你随机一个纸条,并且是唯一的,你要来取东西,就需要拿纸条来确定你的身份,在这里纸条就相当于cookie,

在node中使用中间件express-session这是专门针对于express的一个中间件

第一步:中间件安装

npm install express-session

第二步:引入

var express = require('express')
var  session  = require (' express-session ')

第三步:配置

//配置session中间件要在挂载路由之前
var express = require('express')
var session = require('express-session')
app.use(session({
  secret: 'keyboard cat',   //配置加密字符串,它会在原有的加密基础上和这个字符串拼起来去加密,目的就是增加安全性,防止客户端恶意伪造session
  name: 'cookie_name',		//cookie的名称  也是cookie的key
  cookie: {maxAge: 80000 },  //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
  resave: false,
  saveUninitialized: true   //true  不管你是否使用session存数据  ,都默认分配给客户端一个session
}))

第四步:使用

//当我们把这个插件配置好之后,我们就可以通过req.session来访问和设置session成员了;
//req.session是一个对象
//添加session数据:   key:foo   值:hello word
req.session.foo='hello word';
//访问session数据:
req.session.foo;

清除服务端保存的session;

req.session.destory();//表示销毁session

发布了80 篇原创文章 · 获赞 12 · 访问量 3927

猜你喜欢

转载自blog.csdn.net/weixin_44036436/article/details/101906939
今日推荐