nodejs简易的token更新模型

news2024/11/20 9:13:31

1. 什么是JWT

JWT全称为(JSON WEB TOKEN),是目前流行做登录认证的工具之一,它是一个非常轻巧的规范

2.库安装

npm install jsonwebtoken
github地址: jsonwebtoken

3.更新策略1

假设一个token的有效时间为T
当超过T小时没有请求过接口则失效;
在这里插入图片描述

  1. 用户携带账号密码访问后端校验。
  2. 校验成功后生成有效期为T/2token
  3. redis中设置有效期为T,keytokenkey-value
  4. 当用户访问接口时,如果token已经失效了,则去redis中查找,如果redis有该token则生成一个新的token,替换掉已经失效的token,重置redis的有效期时间为T。如果redis中没有该token,说明该token已经在redis失效或者是无效token,则告知用户重新登录
问题1:一旦token泄露,就可以一值访问 ~_~!

改进1

  1. 3步骤:redis中设置有效期为T,keyuserid,值为tokenuserid-token
  2. 10步骤: 如果存在还要验证token是否一致,保证是最新的token

这样以来就可以在token泄露的时候重新登录更新redis中的token,在原token失效后就无法再更新token
但是一般token的有效时间T都是比较大(比如10天);

问题2:token泄露后有效时间过长

改进2

  1. 2步骤:校验成功后生成有效期为t(尽可能短)token
问题2:token传输过于频繁

改进3

  1. 采用一个access_token访问资源。
  2. 采用一个refresh_token更新access_token

sso图解:
在这里插入图片描述

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

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

相关文章

docker 安装mongo数据库

1.pull镜像 docker pull mongo:4 2.创建目录 mkdir -p /mongodb/datadb chmod 777 /mongodb/datadb 3.运行 准备好目录之后, 就可以开始运行 Docker 镜像了: docker run -d --name mongodb -v /mongodb/datadb:/data/db -p 27017:27017 -e MONGO_INITDB…

【Axure教程】轮盘滑动控制元件移动

轮盘控制元件移动是一种通过轮盘来控制元件位置或参数的方式。轮盘通常是一个圆形或半圆形的旋转控制器,用户可以通过旋转轮盘来实现元件的移动。轮盘滑动控制元件移动广泛应用于各种设备和系统中,例如移动端操作内的游戏,通过旋转轮盘&#…

神经网络:Zero2Hero 3 - Gradient calculation

Zero2Hero 4 - Gradient 创建一个Value类,属性包含变量的值和梯度信息,并支持梯度计算。举例说明梯度反向计算过程。基于Value类构建MLP模型、并实现参数的更新。 import numpy as np import matplotlib.pyplot as plt %matplotlib inlineValue类 支持…

麻了呀,现在的00后都这么卷了吗?

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…

元宇宙应用领域-工业

元宇宙是指虚拟空间的总称,在这个虚拟空间中,用户可以像在现实世界一样,通过虚拟现实技术进行交互和体验。元宇宙应用领域非常广泛,如工业、游戏、娱乐、教育、医疗、房地产等。 工业领域中,元宇宙可用于在设计阶段帮…

【ThinkPHP6系列学习-1】下载并部署ThinkPHP6

目录 一、下载ThinkPHP6 二、目录结构 三、部署,配置虚拟域名 一、下载ThinkPHP6 在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。 comp…

流媒体传输协议相关小结——NALU、RTP、RTSP、RTMP、SDP等

前言: 本文是博主在学习流媒体时进行的小结,涉及内容较多。 由于流媒体协议说复杂也复杂,说简单也简单,复杂在需要考虑到每一位比特,简单在现成的轮子很多,只是会用往往已经足够。因此此文面向那些希望对流…

微信小程序开发实战课后习题解答————第三章(作业版)

一、填空题 1、微信小程序中用 navigationBar 组件可以实现导航栏 2、 微信小程序中能够实现轮播效果的组件是 swiper 3、 微信小程序中实现滚动条事件的绑定方法是 bindscroll 4、 微信小程序中引入音频的组件是 InnerAudioContext 5、 微信小程序…

ESMM - 完整空间多任务模型(阿里)

文章目录 1、动机2、模型结构 Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion RateESMM: Entire Space Multi-Task Model论文发表在SIGIR-2018,作者来自阿里妈妈盖坤团队。ESMM被提出用于解决pcvr建模中存在的两个非常…

ChatGPT + MindShow 制作PPT

🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉🥝 ChatGPT MindShow 制作PPT 文章目录 🍐具体操作🐳结语 🍐具体操作 ChatGP…

异步线程:CompletableFuture、@Async

区别: 1.CompletableFuture是java中提供的一个异步执行类,Async是Spring提供的异步执行方法,当调用方法单独开启一个线程进行调用。 2.Async通常指定一个方法使用的异步方法调用,而CompletableFuture可以一个方法体内对请求体进行排序组合成…

SQL方式对hudi表进行操作

插入数据 查询数据 更新数据 删除数据 覆盖数据 修改表结构 修改分区 插入数据 默认情况下,如果提供了preCombineKey,则insert into的写操作类型为upsert,否则使用insert。 向非分区表插入数据 insert into hudi_cow_nonpcf_tbl sel…

通达信获取行情主站ip地址方法

最近使用通达信的pytdx来获取股票行情,需要通达信的行情站的ip地址与端口,这里做个记录防止忘了 1 测试代码 pip install pytdx from pytdx.hq import TdxHq_API api TdxHq_API() with api.connect(‘121.36.81.195’, 7709):#通达信行情站地址、端口…

摸摸索索总结下项目生命周期经验

业务调研 主要是完全跟技术无关,站在业务的角度去定义系统要干嘛 组织结构图 部门岗位 业务流程图 泳道图,一级业务流程二级业务流程 系统多个模块的整体业务流程 每个模块内部的业务流程 业务需求 需求分析 站在技术的角度,去分析系…

JavaWeb-JSP的学习

JSP 今日目标: 理解 JSP 及 JSP 原理能在 JSP中使用 EL表达式 和 JSTL标签理解 MVC模式 和 三层架构能完成品牌数据的增删改查功能 1、JSP 概述 JSP(全称:Java Server Pages):Java 服务端页面。是一种动态的网页技术…

深拷贝和浅拷贝-M

深拷贝和浅拷贝 数据类型分为:基本数据类型和引用类型 首先基本数据类型分为:number,string,boolean,null,undefined,symbol以及未来ES10新增的BigInt(任意精度整数)七类。 引用类型分为Array,Object,Function,正则等…

Charles 流量配置(弱网测试)、断点调试

一、流量配置 流量配置主要是用来检测软件(APP)在不同的网络环境下的一个表现,例如出现丢包闪退等情况. 流量配置主要有以下四步: 在 Charles 窗口中点击菜单 “Proxy” ,选择 "Throttle Setting" 进行网络…

ChatGPT副业赚钱·Midjourney之logo设计《猪八戒网站接单制作Logo》- 第10篇

历史文章 文心一言 PK ChatGPT,二者究竟谁更胜一筹 - 第7篇 用Midjourney画个美女,AI绘画也太强大了!!! - 第8篇 推荐一款idea神级代码插件【Bito-ChatGPT】而且免费!- 第9篇 ​ 悟纤:师傅&a…

合理利用Optional 来避免NPE

一、什么是Optional 在Java中什么异常最容易出现,那肯定是NullPointerException,空指针就像一个定时炸弹,总给我们带来些麻烦,在开发过程中都会碰到需要判断Null值以防止空指针的情况,以往的方式要么是抛异常&#xf…

(3)---STM32通信

目录 【1】通信的基础知识 【2】USART 【3】串口通信协议 【4】相关寄存器 串口控制寄存器 波特率寄存器 中断和状态寄存器 数据发送寄存器 数据接收寄存器 【5】 USART功能框图 【6】串口发送实验 实验要求 1.观察实物 2.分析原理图 3.STM32CubeMX配置 4、寄存器方式编写…