码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nodejs -- 在Express使用Session认证


    文章目录

      • 在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
    
    • 1

    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//固定写法
    }))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    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.session
        reg.session.user = req.body	//将用户的信息,存储到Session中
        req.session.islogin = true
        //将用户的登录状态,存储到Session中
        res.send({status: 0, msg: '登录成功'})
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    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})
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5 清空Session

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

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

    // 退出登录的接口
    app.post('/api/logout', (req, res) => {
        //清空当前客户端对应的session信息
        req.session.destroy()
        res.send({
            status: 0,
            m5g: '退出登录成功'
        })
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    AI问答-医疗:什么是“手术报台”
    ZooKeeper 7:数据读写——原子广播协议ZAB
    .NET分布式Orleans - 6 - 事件溯源
    微服务架构——笔记(3)Eureka
    ython + Selenium Web自动化 2022更新版教程 自动化测试 软件测试 爬虫-笔记博客整理
    代码随想录算法训练营第七天|二叉树(截止到层序遍历)
    PyTorch(四)Torchvision 与 Transforms
    04在命令行中使用Maven命令创建Maven版的Web工程,并将工程部署到服务器的步骤
    react基础知识点1
    进程的调度
  • 原文地址:https://blog.csdn.net/qq_46311811/article/details/128105142
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号