欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

express-session模块的简单使用

程序员文章站 2022-03-14 22:54:09
...

对应英文网站:https://www.npmjs.com/package/express-session
npm下载:(依赖express框架)

npm install express  express-session 

配置参数

参数 作用
secret 一个字符串,作为服务器端生成session签名
name 返回客户端的key名称,默认是connect.sid,可以自行设置
resave 强制保存session 即使没变化 默认true ,建议改为false
saveUninitialized 当新建强制将未初始化的 session 存储。 默认值是true 建议设置成true,建议添加,
cookie 设置返回到前端key的属性,常用属性如下:默认时:{path:’/’,httpOnly:true,secure:false,maxAge:null}
path:路径
httpOnly:只允许http请求
maxAge: 过期时间 单位毫秒
secure:默认false ,设置为true 时 https这样的情况才可以访问cookie
rolling 在每次请求时强行设置cookie,这将重置cooKie过期时间,默认false

简单服务器端demo

const express = require('express')
const path = require('path')
const formidable = require('formidable')
const session = require('express-session')

const app = express()
//配置session
app.use(
  session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: false,
  })
)
app.use(express.static(path.join(__dirname, 'public')))

app.post('/login', (req, res) => {
  //创建表单解析对象
  var form = formidable.IncomingForm()
  //解析表单
  form.parse(req, (err, fields, file) => {
    //接收客户端传递过来的用户名与密码
    const { username, password } = fields
    //用户名密码比对
    if (username == 'itcast' && password == '123456') {
      //设置session
      req.session.isLogin = true
      res.send({ message: '登录成功' })
    } else {
      res.send({ message: '登录失败,用户名或密码错误' })
    }
  })
})

app.get('/checkLogin',(req,res)=>{
  //判断用户是否处于登录状态
  //获取session
  if(req.session.isLogin){
    res.send{message:'处于登录状态'}
  }else{
    res.send({message:'处于未登录状态'})
  }
})

app.listen(3001)
console.log('服务器启用成功')

相关标签: node nodejs