Nodejs -- 在Express使用Session认证
admin
2024-02-29 11:11:32

文章目录

    • 在Express项目中使用Session认证
      • 1 安装express-session中间件
      • 2 配置express-session中间件
      • 3 向Session中存数据
      • 4 从Session中取数据
      • 5 清空Session

在Express项目中使用Session认证

1 安装express-session中间件

在Express项目中,只需要安装express-session中间件,即可在项目中使用Session认证:

npm i express-session

2 配置express-session中间件

express-session中间件安装成功后,需要通过app.use0来注册session中间件,示例代码如下:

//1,导入session中间件
var session =require'express-session')//2.配置Session中间件
app.use(session({secret: 'keyboard cat',//secret属性的值可以为任意字符串resave: false,//固定写法saveUninitialized: true//固定写法
}))

3 向Session中存数据

express-session中间件配置成功后,即可通过req.session来访问和使用session对象,从而存储用户的关键信息:

app.post('/api/login', (req, res) => {// 判断用户提交的登录信息是否正确if (req.body.username !== 'admin' && req.body.password !== '000000') {return res.send({status: 1, msg: '登录失败'})}// 只有成功配置了 express-session 这个中间件之后,才能够获取到 req.sessionreg.session.user = req.body	//将用户的信息,存储到Session中req.session.islogin = true//将用户的登录状态,存储到Session中res.send({status: 0, msg: '登录成功'})
})

4 从Session中取数据

可以直接从req.session对象上获取之前存储的数据,示例代码如下:

//获取用户姓名的接口
app.get('/api/username', (req, res) => {// 判断用户是否登录if (!req.session.islogin) {return res.send({status: 1, msg: 'fail'})}res.send({status: 0, msg: 'success', username: req.session.user.username})
})

5 清空Session

调用req.session.destroy()函数,即可清空服务器保存的session信息。

只会清空当前用户的Session,不会清空所有用户的Session

// 退出登录的接口
app.post('/api/logout', (req, res) => {//清空当前客户端对应的session信息req.session.destroy()res.send({status: 0,m5g: '退出登录成功'})
})

相关内容

热门资讯

暴跌超60%!洋河股份为何突然... 欢迎关注我的好朋友:杠杆游戏!撰文|蜜妹这是@闺蜜财经的第1948篇原创图片来源|AI自动生成当“茅...
去年境外来穗人员通过境外银行卡... 钛媒体App 1月24日消息,随着外籍人员在广州支付体验提升,广州入境消费也不断升温。据中共广州市委...
男子用SIM卡炼出191克黄金... 近日,话题“男子用SIM卡炼出191.73克黄金”冲上热搜,引发网友讨论。按照最新的黄金价格1120...
什么信号?印度大举抛售美债 转... 财联社1月23日讯(编辑 卞纯)随着印度努力支撑卢比兑美元汇率,并扩大外汇储备多元化,印度央行持有的...