在express中使用session认证

在express中使用session认证

FengXin
2023-07-24 / 0 评论 / 30 阅读 / 正在检测是否收录...

安装 express-session

npm i express-session

创建 web 服务器

// 导入 express 模块
const express = require('express')
// 创建 web 服务器
const app = express()

// 启动服务器
app.listen(80, () => {
  console.log('http://127.0.0.7')
})

配置并注册 session 中间件

// 配置 session 中间件
const session = require('express-session')
// 注册 session 中间件
app.use(session({
  secret: 'itheima',
  resave: false,
  saveUninitialized: true
}))

向 session 中存数据

// 登录的 API 接口
app.post('/api/login', (req, res) => {
  // 判断登录信息是否正确
  if (req.body.username != 'admin' || req.body.password != '000000') {
    return res.send({ status: 1, msg: '登陆失败!' })
  }

  // 登录成功,将用户信息保存到 session
  req.session.user = req.body // 用户的信息
  req.session.islogin = true // 用户的登录状态

  res.send({ status: 0, msg: '登录成功!' })
})

从 session 中取数据

// 获取用户名称的接口
app.get('/api/username', (req, res) => {
  // 从 session 中获取用户的名称,响应给客户端
  // 判断用户是否已登录
  if (!req.session.islogin) {
    return res.send({ status: 1, msg: '请先登录!' })
  }

  res.send({ status: 0, msg: '您已登录!', username: req.session.user.username })
})

清空 session

// 退出登录的接口
app.post('/api/logout', (req, res) => {
  // 清空 session 信息
  req.session.destroy()
  res.send({ status: 0, msg: '退出登录成功!' })
})
0

评论

博主关闭了所有页面的评论