什么是不透明令牌?


9

而且,它们采用“专有格式”意味着什么?我正在阅读有关JWT刷新令牌的信息,它们是不透明的令牌,但我不理解该术语。

Answers:


14

一个JWT有可读的内容,因为你可以看到例如在https://jwt.io/。每个人都可以解码令牌并读取其中的信息。该格式记录在RFC 7519中

一个令牌不透明,另一方面具有不打算由你读取的格式。只有发行者知道格式。

这个词的含义已经暗示:

不透明的/形容词(ə)ˈpeɪk /形容词

无法看穿;不透明。

这是来自https://auth0.com/docs/tokens的报价:

不透明令牌:专有格式的令牌,通常包含服务器永久存储中信息的某些标识符。要验证不透明令牌,令牌的接收者需要调用发出令牌的服务器。

根据上面的定义,“不透明的JWT刷新令牌”是一个矛盾。实际上,这里的意思是,在某些JWT框架中,仅身份验证令牌是JWT,但是作为刷新令牌,它们使用不透明令牌。


谢谢。我认为让我感到困惑的是签名部分,该部分是加密的,因此本身并不真正可读。我还在这里找到了很好的解释:community.apigee.com/questions/21139/jwt-vs-oauth.html
sloneorzeszki

1
@sloneorzeszki在解释中,您链接的an opaque token被描述为随机字符串,仅用作服务器端存储信息的指针。此处将这种令牌描述为,reference token而令牌opaque token实际上可能包含加密信息(仅原始发行者可读)。因此,我们应该了解一些稍微不同的定义。
jps

0

在这里,术语“不透明”表示字符串(用作令牌)就像引用(在OOP中),指针(在C中)或外键(在关系DB中)一样。即,您需要外部内容来解决它。

简单与复合:

该字符串是一个“简单”字符串,与JWS相反,其中的“是composite”;它的一部分在“里面”。

内部与外部:

您可以从其中提取有效负载(带有声明等),而无需在此字符串“外部”引用外部服务器或存储。

由于不透明令牌是一个简单的字符串,因此它仅是一个引用,因此,自然地,其格式完全由发布它的服务器确定(因此称为“专有格式”)。在创建基础(引用)内容时即在将令牌字符串与该令牌(作为引用或外键)引用的内容配对(关联)时确定令牌字符串。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.