安装
npm i express-session
参数 说明
secret 一个 String 类型的字符串,作为服务器端生成 session 的签名
name 返回客户端的 key 的名称,默认为 connect.sid,也可以自己设置
resave 强制保存 session 即使它并没有变化,。默认为 true。建议设置成 false。
saveUninitialized 强制将未初始化的 session 存储。当新建了一个 session 且未设定属性或值时,它就处于未初始化状态。在设定一个 cookie 前,这对于登陆验证,减轻服务端存储压力,权限控制是有帮助的。(默 认:true)。建议手动添加
cookie 设置返回到前端 key 的属性,默认值为{ path: ‘/’, httpOnly: true, secure: false, maxAge: null }
rolling 在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false)
?
? 配置:
app.use( session({
secret:"offcn.com",
resave:false,
saveUninitialized:true,
cookie:("name","value",{ path: "/", httpOnly: true, secure: false, maxAge: null })
}))
? 使用:session的设置和读取语法完全一样
? 设置: request.session.uname = "张三"
? 读取: request.session.uname
session是基于后端的临时存储数据的技术,session保存的位置是服务器端(缓存中),cookie是基于前端的,cookie保存的位置是客户端(隐蔽的安装目录下,以字符串形式存储)。相同之处,cookie和session都可以用来在客户端与服务器之间共享信息,都是基于键值对(k=v)存储。都是只能存储字符串(json对象可以转化为字符串存储)
作用: svg图形格式的验证码插件,把text内容转换为svg图形。
安装:
npm i svg-captcha
配置svgCaptcha
let options = {
size:4, //验证码长度
width: 200, //验证码图片的宽高
height:100,
background:"#f4f4f4f",
noise:3, //验证码中的干扰线
fontSize: 36,
ignoreChars:"lIo0", //排除lIo0等人不容易分辨的字符
color:true //验证码字体颜色,如果设置了背景颜色,则这边必须设置为true
}
使用
app.get("/yzm", (request,response)=>{
// svg-captcha的配置
let captcha = svgCaptcha.create(options);
response.type("svg");
console.log( captcha );
// 用法: captcha对象中text是自动生成的随机的字符串,我们将其保存在session中。把 captcha.data 发送到浏览器显示为图片,让用户分辨,当用户填写的验证码提交后,将其和session保存的进行对比,如果一致说明是正常的注册。
request.session.yzm = captcha.text;
response.send( captcha.data );
})
前端页面应用:
<img src="/yzm" >
node session会话管理 svg-captchar验证码中间件
原文:https://www.cnblogs.com/bnzw/p/13945210.html