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: '退出登录成功'})
})

相关内容

热门资讯

“中国巴菲特”捐了市值1500... 知名投资人段永平向一高校捐赠1万股贵州茅台股票。11月1日,据“江西水利电力大学”微信公号消息,段永...
胜利1945|台湾雾峰林家——...   走进台湾雾峰林家,见证一个家族跨越世纪的爱国传奇。从林朝栋抗法、林祖密革命、再到林正亨远征……台...
微软和OpenAI CEO罕见... 近日,在一场罕见的同场对话中,OpenAI CEO萨姆·奥特曼(Sam Altman)与微软CEO萨...
AWS 大反转!掉队的亚马逊终... 【一键三连赢干货礼包!】对本篇文章完成“点赞 + 推荐 + 评论”一键三连,并截图发送给小助手(微信...
大规模增资!超5200亿上市银... 时隔数年,九江银行再谋增资扩股!10月31日晚间,该行公告称,董事会通过议案,建议向合资格认购方发行...