首页 > 其他 > 详细

node session会话管理 svg-captchar验证码中间件

时间:2020-11-08 22:27:34      阅读:45      评论:0      收藏:0      [点我收藏+]

1、session 会话管理

安装

npm i express-session

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对象可以转化为字符串存储)

2、svg-captcha 验证码中间件

作用: 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!