当前位置: 首页 > news >正文

Token的应用场景

JWT

  • JWT由三部分组成:头部(Header)、有效载荷(Payload)和签名(Signature)
  • 头部通常指定了Token的类型和使用的哈希算法;有效载荷包含了一系列的声明,例如用户的ID、Token的发行者和过期时间;签名用于验证消息的完整性和确保Token没有被篡改
  • JWT通常用作访问Token,用户登录后会收到一个JWT,之后每次请求需要访问受保护的资源时都需要携带该JWT
  • 优点: 由于Token自包含(即包含了所有用户状态信息),这减少了服务器查数据库的需要
  • 缺点: 存储在客户端,如果Token被截获将会暴露所有用户信息

Token一旦被发出就无法在服务器端废除它(即除非过期,否则一直有效)

双token机制

  • 适用场景:用户登录权限
  • 用户首次成功登录后,服务端生成两个令牌:access_token 和 refresh_token。
    refresh_token 拥有比 access_token 更长的有效期,用于在 access_token 过期时进行刷新
  • 服务端将两个令牌返回给用户,用户将它们储存起来以便之后使用
  • 用户在之后的每个请求中将 access_token 放入请求的授权头(Authorization header),以便服务端验证用户的身份及有效性
  • 如果服务端检测到 access_token 已失效,它会返回相关的错误响应(如HTTP 401状态码)
  • App在接收到令牌失效的响应后,不会直接通知用户,而是自动使用储存的 refresh_token 向服务端发起请求,请求新的 access_token
  • 服务端接收 refresh_token,验证其有效性,然后生成新的 access_token(和可选的 refresh_token),并将它们返回给用户
    • 这一步骤中,服务端可能只返回新的 access_token,或同时返回新的 access_token 和 refresh_token,具体取决于安全策略和令牌的生命周期管理
  • 用户使用新的 access_token 继续他们的请求,而服务端继续验证新令牌的有效性

主从token机制

  • 适用场景:支付/转账场景
  • 当用户1首次请求支付订单时,服务端为该次交易生成一个唯一的主令牌(master_token)
  • 服务端将生成的master_token返回给用户1,用户1需要保存这个令牌以完成接下来的支付过程
  • 当用户2请求支付订单,且此时用户1的master_token已经过期时,服务端会生成一个新的master_token,已过期的master_token不会被立即废弃,而是作为备用令牌(backup_token)被存储起来
  • 服务端将新生成的master_token返回给用户2,用户2同样需要将此令牌保存以用于支付
  • 用户1使用其保存的(现在已过期的)master_token尝试进行支付,服务端检测到该令牌无效后,会尝试验证之前存储为backup_token的过期令牌,如果backup_token有效,服务端允许支付动作完成
  • 用户2使用其有效的master_token进行支付,服务端校验成功后允许支付动作完成
  • 当用户3请求支付订单时,与用户2被发放的master_token也已经过期,服务端重复前面的过程:生成新的master_token,且旧的master_token转变为backup_token

相关文章:

Token的应用场景

JWT JWT由三部分组成:头部(Header)、有效载荷(Payload)和签名(Signature)头部通常指定了Token的类型和使用的哈希算法;有效载荷包含了一系列的声明,例如用户的ID、Token…...

机器学习课程复习——奇异值分解

1. 三种奇异值分解 奇异值分解(Singular Value Decomposition, SVD)包含了: 完全奇异值分解(Complete Singular Value Decomposition, CSVD)紧奇异值分解(Tight Singular Value Decomposition, TSVD&…...

Java--乐观锁

乐观锁是一种并发控制机制,用于处理多个事务或线程对同一数据进行并发修改的问题。它假设多个事务或线程在操作数据时不会互相干扰,因此不在数据上加锁,而是在提交数据时检查数据是否被其他事务修改过。如果数据在提交前已经被其他事务修改&a…...

静默升级oracle 11g (从11.2.0.1升级到11.2.0.4)

原文:https://www.cnblogs.com/daizhengyang/p/13353783.html 一个环境是oracle 11.2.0.1,一个环境是oracle 11.2.0.4,同样的数据,同样的sql,在两个版本数据库表现不一样。于是,干脆都统一为11.2.0.4。 但…...

什么是模型训练,如何选择合适的Batch大小

模型训练是指使用数据集对模型进行训练,使其能够从数据中学习到特征和模式,进而完成特定的任务。在深度学习领域,通常使用反向传播算法来训练模型,其中模型会根据数据集中的输入和输出,不断更新其参数,以最…...

【线上绘图网站分享】

好用的线上绘图网站分享 使用场景特点使用例子 Excalidraw 使用场景 流程图绘制、组会分享工具等; 特点 最重要的就是:免费!! 简单,快捷:有时候临时要画一个流程图之类的用来示意、分享知识点&#xff…...

Snipaste截图工具如何控制框线箭头的粗细程度

我们使用Snipaste截图工具的时候,最常用的就是框线和箭头这些功能,有时候感觉很粗有时候感觉太细了,如何解决呢?我们可以在使用框线或者箭头之后,长按1或者2来控制框线箭头的粗细程度。其中1是变细,2是变粗…...

GISSERVER 管理器 1.0(私有化地图离线部署)

一、 简介 QGIS现在在全世界已经成为ARCGIS的最佳代替产品,而且是开源免费的。其用户社区和产品功能都已经可以与arcgis相媲美! GISSERVER管理工具是一个零代码地图网站建站工具(私有化地图离线部署),可以直接将QGIS工程转换为GIS网站(功能类似ARCGISM…...

Eureka服务治理深度解析:服务下线与剔除机制揭秘

Eureka服务治理深度解析:服务下线与剔除机制揭秘 在微服务架构中,服务的动态注册与发现是保证系统高可用性的关键。Netflix开源的Eureka作为服务发现框架,其服务下线与剔除机制是确保服务列表准确性的重要手段。本文将深入探讨Eureka中的服务…...

苹果笔记本双系统怎么安装

想要在mac电脑上装双系统,首先需要确认您的电脑是否支持。苹果电脑自带的boot camp工具可以帮助您在mac上安装windows系统,只需按照步骤进行操作即可。另外,您也可以使用虚拟机软件,如parallels desktop或vmware fusion&#xff0…...

探索网络爬虫技术:原理、实践与挑战

一、引言 在数字化时代,信息如同潮水般汹涌而来。过去,我们可能依赖书籍、报纸或电视来获取信息,但这些渠道的信息量有限,而且筛选过的信息未必能满足我们的需求。如今,互联网为我们提供了海量的信息,但同…...

GitHub国内使用方法

1、登录验证: 在火狐中添加插件“身份验证器”。此款插件对应的主页地址为:https://github.com/Authenticator-Extension/Authenticator 2、加速: 安装工具:https://gitee.com/XingYuan55/FastGithub/releases/tag/2.1.4 工具…...

Java调用第三方HTTP接口的常用方式

【日常业务开发】Java调用第三方http接口的常用方式 概述Java调用第三方http接口的方式 通过JDK网络类Java.net.HttpURLConnection通过apache common封装好的HttpClient通过Apache封装好的CloseableHttpClient通过OkHttp通过Spring的RestTemplate通过hutool的HttpUtil 总结 概述…...

DOPE-PEG2000-FITC荧光特性

DOPE-PEG2000-FITC作为一种荧光标记分子,在生物医学领域应用。其荧光特性为生物成像和药物追踪提供了工具应用 FITC,作为荧光团,在受到特定波长的光激发时,能够吸收光能并转化为荧光发射。这一过程中,FITC分子从基态跃…...

华为Pura70支持5G功能吗?看完你就清楚了

随着 5G 技术的普及,现在智能手机市场中的大部分新品都已经支持 5G 网络。相较于 4G,5G 不仅带来了更快的网速,更为用户带来了全新的使用体验。 然而,华为作为智能手机市场的佼佼者,其产品线中的部分手机在配置上却有…...

android 4大组件用法

在Android开发中,应用程序的主要组件包括Activity、Service、Broadcast Receiver和Content Provider。这些组件共同组成了Android应用的基本构架。以下是每个组件的详细用法: 1. Activity Activity是Android应用的主要组成部分,代表一个用户…...

qt pro工程文件通用宏定义

在 Qt .pro 文件中,有一些预定义的宏(或变量),它们代表了特定的路径或与项目、构建环境相关的信息。 以下是一些常用的 .pro 文件宏: 通用宏 $$PWD: 当前 .pro 文件所在的绝对路径。这是一个非常重要的宏,…...

这次让我们隆重的介绍一下

深思熟虑之后,我诚挚地想要全面的介绍自己。若你的需求与我的专长恰好契合,我将以满心的热枕和真诚与你并肩作战,携手解决难题,一同追求卓越,实现我们的垂直成长。我是一名经验丰富且充满热情的技术人员。我热爱编程&a…...

大语言模型系列-Transformer

DeepSeek Transformer模型是深度学习领域中一种革命性的架构,它在自然语言处理(NLP)任务中取得了巨大的成功。Transformer模型由Vaswani等人在2017年的论文《Attention Is All You Need》中提出,其核心思想是利用自注意力&#x…...

Node.js 语言特定指南

Node.js 语言特定指南 本 Node.js 语言特定指南将教您如何使用 Docker 容器化 Node.js 应用程序。在本指南中,您将学习如何: 容器化并运行一个 Node.js 应用程序设置一个本地环境以使用容器开发 Node.js 应用程序使用容器为 Node.js 应用程序运行测试使…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...