Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >长TTL的reference_token与refresh_token+short生存的JWT有什么区别?

长TTL的reference_token与refresh_token+short生存的JWT有什么区别?
EN

Stack Overflow用户
提问于 2018-02-19 01:28:11
回答 1查看 167关注 0票数 1

我们一直在SPA中使用refresh_tokens + JWT,Identityserver3 as TokenServer (STS)。我注意到这是不推荐的,我们应该使用reference_token,因为在令牌被破坏的情况下可以撤销。

用户的要求是停留在30天内签字。

引用令牌(方法1)

在这种情况下,STS发出一个长TTL (30天)的reference_token。还建议资源所有者将reference_token缓存一段短时间(10分钟TTL)以提高性能。

如果reference_token被破坏,它可以在STS中被撤销,资源将在10分钟内拒绝请求(取决于缓存)。

这说得通。

刷新令牌+短命JWT (方法2)

在方法2中,STS发出一个短暂的JWT (10分钟TTL)和一个更长的refresh_token (30天)。参考资料检查JWT的有效性(JWT只有效10分钟)。

如果refresh_token被破坏,它可以在STS中被撤销,客户端将无法生成新的JWT。资源将在10分钟内拒绝请求(取决于JWT的创建时间)。

从安全的角度来看,我看不出方法1和方法2之间的区别。

谁能进一步解释一下这一点,并帮助我推理该走哪条路?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-19 02:39:04

第二种方法具有额外的攻击向量,即可以从刷新令牌获得的访问令牌。

我看不出为什么在这种情况下不应该使用引用标记。这就是他们的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48862983

复制
相关文章
Flink 状态生存时间(State TTL)设置
为什么状态需要被清理 状态不需要一次存储 状态有效期有时间限制,超过时间需要重置状态(业务上) 开启状态清理: StateTtlConfig ttlConfig = StateTtlConfig .newBuilder(Time.seconds(1)) .setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite) .setStateVisibility(St
yiduwangkai
2021/10/15
2.5K0
DDD与传统的OOA/D有什么区别?
DDD(Domain-Driven Design)与传统的OOA/D(Object-Oriented Analysis and Design)有以下几个不同点:
逍遥壮士
2023/09/01
6290
DDD与传统的OOA/D有什么区别?
TTL与LVTTL
TTL电路是晶体管-晶体管逻辑电路的缩写(Transistor-Transistor Logic),采用双极性工艺(两种载流子)制造,为电流控制元件。
根究FPGA
2020/06/30
5K0
TTL与LVTTL
CMOS与TTL(下):TTL、CMOS
如果只看一个芯片的外观,是无法区分TTL和CMOS的。因为它们是按照芯片的制作工艺来分类的。 CMOS内部集成的是MOS管,而TTL内部集成的是三极管。
WuShF
2023/04/12
1.4K0
CMOS与TTL(下):TTL、CMOS
SSR 与当年的 JSP、PHP 有什么区别?
也就是说,历经 SSR 到 CSR 的大变革之后,如今又从 CSR 出发去探索 SSR 的可能性……似乎兜兜转转又回到了起点,在这之间发生了什么?如今的 SSR 与当年的 JSP、PHP 又有什么区别?
ayqy贾杰
2020/11/03
2.4K0
简单的说下,(function(){...})() 与 (function(){...}()) 有什么区别?
大周末的写太长了也没人看,标题所提问,其实没有区别, function xxx(){...},这是一个函数,解释器知道了,但并不运行它; xxx(),解释器遇到它就会执行它。 IIFE写法的好处: 1,普通写法代码多,并且定义和执行不在一起; 2,占用命名空间; 不想给某些函数起名,又想让它立即执行,那怎么办呢?简单啊,将之转化为表达式,加个()呗,变成这样, (function xxx(){console.log('xxx')})(); 那既然都立即执行了,干脆函数名也不要了吧,于是, (function
web前端教室
2018/02/07
8680
IOE与IOT:有什么区别?
除非您是专家,否则物联网(IoT)和万物互联(IoE)之间没什么区别。然而,后一个术语在语义上更广泛。在这篇文章中,我们将详细解释为什么物联网软件开发公司很少使用术语IoE。
用户2605137
2022/04/12
1.1K0
IOE与IOT:有什么区别?
Webhook 与 API:有什么区别?
数字时代的关键驱动力是通信。作为人类,我们希望技术能够帮助我们更快、更轻松地与更多人交流。想要实现这一点,我们必须首先找到一种让技术相互交流的方法,这就是 API 和 webhook 发挥作用的地方。
用户9958066
2022/09/09
2.6K0
scdn与cdn有什么区别?
你们有没有发现我们在购买cdn的时候一些大厂分为scdn和cdn两种,那么scdn与cdn有什么区别?一起来看一看吧。
文曦
2022/06/24
2.6K0
scdn与cdn有什么区别?
Proxy与NAT有什么区别
在internet共享上网技术上,一般有两种方式,一种是proxy代理型,一种是NAT网关型,关于两网络
Java架构师必看
2021/03/22
1.4K0
API 与 SDK:有什么区别?
既然点进来了,相信你或多或少都听说过这两个名词了,因此,在为你解答之前,让我们先从一个例子出发。假如你想开发一个 OCR 应用(通俗的说就是文字识别应用),他的功能是识别用户上传的一张图片,然后将图片中的文字识别出来返回给用户。如下图所示:
出其东门
2020/12/31
1.9K0
摘掉“爆雷”“二房东”的帽子,长租公寓有了新的生存法则
作为市场份额和行业影响力最大的长租平台,自如的主动求变势必将为整个行业按下转型升级的“快进键”,并将重构市场的生存法则。
Alter聊科技
2023/01/12
3060
字符与字节有什么区别呢?
1、计算机存储信息的最小单位,称之为位(bit),音译为比特,二进制的一个“0”或一个“1”叫一位。 2、计算机存储容量基本单位是字节(Byte),音译为拜特,8个二进制位组成1个字节。一般而言:一个标准英文字母占一个字节位置,一个标准汉字占二个字节位置。 3、计算机存储容量大小以字节数来度量,1024进位制:   1024B=1K(千)B   1024KB=1M(兆)B   1024MB=1G(吉)B   1024GB=1T(太)B   以下还有PB、EB、ZB、YB 、NB、DB,一般人不常使用了。 4、字符是一种符号,同以上说的存储单位不是一回事。
黑泽君
2018/10/11
13.8K0
php 5 与7有什么区别
PHP 7.0使用新版的ZendEngine引擎,带来了许多新的特性,其与相比,有如下特性:
全栈程序员站长
2022/07/08
4630
301跳转与302有什么区别
301:(永久移动)请求的网页已被永久移动到新位置。服务器返回此响应(作为对GET或HEAD请求的响应)时,会自动将请求者转到新位置。
Hello-1
2022/08/30
2.4K0
SCRM与传统CRM有什么区别?
CRM英文是Customer Relationship Management,中文的意思是客户关系管理。SCRM英文全称是Social Customer Relationship Management, 即Social+CRM,借由社交化工具,实现对用户的个性化沟通,更重要的是SCRM通过互联技术将用户纳入到企业的营销体系中,鼓励用户与用户直接的个性化的沟通,在沟通过程中,用户收获更多的参与感、获得感,从而提升用户对品牌的认可和情感联结。
布鲁斯8号
2022/03/23
1.1K0
SCRM与传统CRM有什么区别?
JWT与Session的比较
JWT简称JSON Web Token,也就是用过JSON形式作为Web应用中的令牌,用于在各方之间(比如前后端之间、A系统与B系统之间)安全地将信息作为JSON对象传输。在数据传输过程中还可以完成数据加密、签名等相关处理。多用于Java Web以及前后端分离的项目
Java学术趴
2022/06/21
1.2K1
JWT与Session的比较
jdk和jre有什么区别_jdk与jre的关系
JDK与JRE 在安装的过程中各位可能注意到了JRE这个名词,下面我们来聊聊JDK和JRE的关系和区别。  JDK:它是Java开发运行环境,在程序员的电脑上当然要安装JDK;  JRE:Java Runtime Environment它是Java运行环境,如果你不需要开发只需要运行Java程序,那么你可以安装JRE。例如程序员开发出的程序最终卖给了用户,用户不用开发,只需要运行程序,所以用户在电脑上安装JRE即可。  JDK包含了JRE。  JRE中包含虚拟机JVM JRE: Java Runtime Environment JDK:Java Development Kit JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。 如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。 JRE根据不同操作系统(如:windows,linux等)和不同JRE提供商(IBM,ORACLE等)有很多版本,最常用的是Oracle公司收购SUN公司的JRE版本。 简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,俺发现事jdk/bin目录里比jre7/bin多了一套Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。
Java架构师必看
2022/05/26
1.1K0
jdk和jre有什么区别_jdk与jre的关系
Java 中的同步集合与并发集合有什么区别?
在Java中,集合是一组对象的容器,可以使用集合来存储/管理数据。通常,Java提供了两种类型的集合:同步集合和并发集合。
用户1289394
2023/08/22
1800
Java 中的同步集合与并发集合有什么区别?
并不简单的问题:列表与元祖有什么区别?
花下猫说:公众号没有留言功能,真是不方便。上周,尝试性地推送了一篇英文文章,单从后台数据来看,效果还不错。这周继续尝试推送一篇。大家有什么想法,可以后台与我交流。
Python猫
2019/04/10
7330

相似问题

CORS与JWT有什么区别?

24

Firebase Firestore中的文档是否有TTL (生存时间)

12

Pubnub生存时间(TTL)

12

Firebase数据库中的文档是否有TTL (生存时间)

14

为什么有几种生存的时间(TTL) (在ie名称堆上)

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文