session和JWT的应用及区别

news2024/11/15 13:34:24

文章目录

        • 登录认证(node)
          • 一、session
            • 1.下载session
            • 2.全部配置session
            • 3.存储session
            • 4.获取session
            • 5.销毁session
          • 二、JWT (Json web token)
            • 1.JWT 的工作原理
            • 2.JWT 的组成
            • 3.下载JWT
            • 4.生成token
            • 5.解密TOken
            • 6.配置全局错误中间件

登录认证(node)

一、session

一、在node中使用session
1.要下载session
2.将session全局引入
3.在登录请求中保存用户的登录信息和登录状态
4.在获取session和销毁session
二、session的工作原理
1.当用户发送的请求判断真确后会将用户的信息存在session
2.当用户再次发送请求时,会判断用户的信息是否真确。

1.下载session
npm i express-session
2.全部配置session
const session= require('express-session')
app.use(session({
    secret:'codeyuan',
    resave:false,
    saveUninitialized:true
}))
3.存储session
 //存储用户的信息
    req.session.user=req.body
    req.session.isLogin=true
4.获取session
//取出session
router.post('/User',(req,res)=>{
    if(!req.session.isLogin){
      res.send({
        code:200,
        msg:"未登录"
      })
    }
    res.send({
        code:200,
        data:req.session.user
    })
})
5.销毁session
 req.session.destroy() //清空session
二、JWT (Json web token)
1.JWT 的工作原理

在这里插入图片描述

2.JWT 的组成

通常JWT由三部分组成依次是:header,payload,signauter
其中payload 是用户真正的信息。

3.下载JWT
 npm i jsonwebtoken express-jwt
4.生成token

//导入用于生成JWT的包
const jwt=require('jsonwebtoken')
  //生成token
   const tokenStr= jwt.sign({username:req.body},secretKey,{expiresIn:"30s"})
5.解密TOken

对于挂载express-jwt的可以在req.user获取到解析的属性。

//定义 secrekey秘钥
const secretKey='codeyuan &&' 
//用于还原jwt
const expressJWT=require('express-jwt')
 //注册jwt的解密 unless这表是那些不用权限
app.use(expressJWT({secret:secretKey}).unless({
   path:[/^\/api\//]
}))

在这里插入图片描述

6.配置全局错误中间件
app.use((err,req,res,next)=>{
    if(err.name=='UnauthorizedError'){
        return res.send({
            status:401,
            msg:"无效token"
        })
    }
    res.send({
        status:500,
        msg:'未知错误'
    })
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还不懂Redis?看完这个故事就明白了!

还不懂Redis?看完这个故事就明白了! 我是Redis 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 说起我的诞生,跟关系数据库MySQL还挺有渊源的。 在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也…

全国独家专利药品有哪些品种?全国独家药品产品汇总查阅

独家药品一般是指某一家药企拥有生产和销售某种药品的独家权利,细分有活性成分独家(通用名成分独家)、品种独家(同成分不同剂型)、独家品规,通俗可以分成药品功能独家和产品独家。独家药品经常被人认为是具…

证件拍照扫描——基于C++与深度神经网络实现证件识别扫描并1比1还原证件到A4纸上

前言 数字化时代的到来,越来越多的证件需要进行电子化处理,例如身份证、驾驶证、护照等。在进行电子化处理时,最常见的需求就是将证件照片复制到A4纸上,以便于打印、存档或传输。同时,为了方便信息的录入和管理&#…

一条命令搭建HTTP服务器

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 转载自远程内网穿透的文章:【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透…

word自带公式编辑

快捷键: 公式编辑:alt“” 上标:x^i 空格 下标:x_i 空格 实数R:\doubleR 空格 偏微分算子:“\partial” 极限:“\limit”(按空格后会显示一串很长的式子,再空格就变…

在Linux操作系统上部署wgcloud监控

1.wgcloud监控介绍 1.1 介绍 ​ 这是一款开源的主机监控系统,可以支持主机各种指标监测(cpu使用率,cpu温度,内存使用率,磁盘容量空间,磁盘IO,硬盘SMART健康状态,系统负载&#xff…

starrocks基于prometheus实现监控告警

监控报警 本文介绍如何为 StarRocks 设置监控报警。 StarRocks 提供两种监控报警的方案。企业版用户可以使用内置的 StarRocksManager,其自带的 Agent 从各个 Host 采集监控信息,上报至 Center Service,然后做可视化展示。StarRocksManager …

[陇剑杯 2021]之Misc篇(NSSCTF)刷题记录⑤

NSSCTF-Misc篇-[陇剑杯 2021] 日志分析:[陇剑杯 2021]日志分析(问1)[陇剑杯 2021]日志分析(问2)[陇剑杯 2021]日志分析(问3) 简单日志分析:[陇剑杯 2021]简单日志分析(问1&#xff0…

Python制作一个自动发送弹幕的工具,让你看直播不冷场

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 让我们先看看效果: 名字我就打码了,当然名字不是关键,我直接截图展示算了,GIF的话,太麻烦了。 环境使用: Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器…

存在列排斥力的另一例证

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由5张二值化的图片组成,让A中有5个1,B中全是0,排列组合A的所有可能,统计迭代次数的顺序。其中有12组数据 A-B 迭代次数 1 0 1 5*4*2*1…

Inception 深度卷积神经网络(CNN)架构

Inception是一种深度卷积神经网络(CNN)架构,由Google在2014年提出。它是一种基于多尺度卷积的网络结构,旨在解决传统CNN在处理不同大小的输入图像时存在的问题。 Inception的主要特点是使用了多个不同尺度的卷积核来提取不同尺度…

API测试| 了解API接口测试| API接口测试指南(一)

什么是API? API是一个缩写,它代表了一个 pplication P AGC软件覆盖整个房间。API是用于构建软件应用程序的一组例程,协议和工具。API指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称为过…

人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码)

人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 目录 人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 1. 前言 2. 人脸检测和行人检测数据集说明 (1)人脸检测和行人检测数据…

初识C++之左值引用与右值引用

目录 一、左值引用与右值引用 1. 左值和右值的概念 1.1 左值 1.2 右值 1.3 左值与右值的区分 2. 左值引用与右值引用 2.1 左值引用与右值引用的使用方法 2.2 左值引用的可引用范围 2.3 右值引用的可引用范围 3. 右值引用的作用 3.1 减少传值返回的拷贝 3.2 插入时的…

2023北京新一代信息技术应用融合创新人才发展峰会暨鲲鹏开发者创享日·北京站成功举办

以技术创新促产业发展,以开放使能筑人才根基 4月25日,由北京市经济和信息化局、北京市朝阳区人民政府、国家工业信息安全发展研究中心与华为技术有限公司联合主办,北京鲲鹏联合创新中心、北京市中小企业公共服务平台、中国软件行业协会承办的…

字节超全学习流程图流出,100天涨薪10k,从功能测试到自动化测试

今年年初,由于经济压力让我下定决心进阶自动化测试,已经24的我做了3年功能测试,坐标广州薪资定格在8k,可能是生活过的太安逸,觉得8000的工资也够了。 但是生活总是多变的,女朋友的突然怀孕,让我…

软件测试面试一定要看的面试题和笔试题全套教程

1、什么是软件测试?2’ 【要点】 在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试。 【详解】 软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明书…

ApplicationContextAware接口

一、ApplicationContextAware接口的基本介绍 public interface ApplicationContextAware extends Aware {void setApplicationContext(ApplicationContext applicationContext) throws BeansException;}在Spring/SpringMVC中,我们拿到IOC容器无非有三种方式&#x…

通达信结构紧凑形态选股公式编写思路

在威廉欧奈尔的《笑傲股市》、马克米勒维尼的《股票魔法师》等书籍中都有结构紧凑形态的相关描述,股票在形成基底时,价格波动幅度逐渐减小,量能逐步萎缩,同时价格相对强度较高。 结构紧凑的形态通过眼睛观察,一般可以…

JS类的学习

文章目录 一、JavaScript 类(class)二、JavaScript 类继承三、 JavaScript 静态方法总结 一、JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类,类体在一对大括号 {} 中,我们可以在大括号 {} 中定义类成员的位置&…