而且,它们采用“专有格式”意味着什么?我正在阅读有关JWT刷新令牌的信息,它们是不透明的令牌,但我不理解该术语。
而且,它们采用“专有格式”意味着什么?我正在阅读有关JWT刷新令牌的信息,它们是不透明的令牌,但我不理解该术语。
Answers:
一个JWT有可读的内容,因为你可以看到例如在https://jwt.io/。每个人都可以解码令牌并读取其中的信息。该格式记录在RFC 7519中。
一个令牌不透明,另一方面具有不打算由你读取的格式。只有发行者知道格式。
这个词的含义已经暗示:
不透明的/形容词(ə)ˈpeɪk /形容词
无法看穿;不透明。
这是来自https://auth0.com/docs/tokens的报价:
不透明令牌:专有格式的令牌,通常包含服务器永久存储中信息的某些标识符。要验证不透明令牌,令牌的接收者需要调用发出令牌的服务器。
根据上面的定义,“不透明的JWT刷新令牌”是一个矛盾。实际上,这里的意思是,在某些JWT框架中,仅身份验证令牌是JWT,但是作为刷新令牌,它们使用不透明令牌。
在这里,术语“不透明”表示字符串(用作令牌)就像引用(在OOP中),指针(在C中)或外键(在关系DB中)一样。即,您需要外部内容来解决它。
简单与复合:
该字符串是一个“简单”字符串,与JWS相反,其中的“是composite”;它的一部分在“里面”。
内部与外部:
您可以从其中提取有效负载(带有声明等),而无需在此字符串“外部”引用外部服务器或存储。
由于不透明令牌是一个简单的字符串,因此它仅是一个引用,因此,自然地,其格式完全由发布它的服务器确定(因此称为“专有格式”)。在创建基础(引用)内容时即在将令牌字符串与该令牌(作为引用或外键)引用的内容配对(关联)时确定令牌字符串。