本文介绍了JWT的组成和工作原理,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。
什么是JWT?
JWT(json web token),这不是一个具体的技术实现,更像是一个标准。
JWT规定了数据传输的结构。一串完整的JWT由三段组成,每段由一个英文句号(。).它们是:报头、有效载荷和签名。因此,传统的JWT内容格式如下:AAA。BBB.CCC
而且,这串内容会被base64加密;也就是说base64解码可以看到实际传输的内容。接下来解释一下这些内容都是做什么的。
Header
头包含加密方法和类型,例如:
Payload
然后我们来看看BBB代表的有效载荷:
顾名思义,这里将包含实际的参数内容,例如:
记住,不要在这里传递敏感数据,因为只要是base64解码就能看到,除非你多了一层加密。
Signature
最后一部分是CCC的签名,当然字面意思也是3354签名。base64解码后,看起来是这样的:
主要确定报头和有效载荷是否被篡改;如果内容被篡改,此JWT将被视为无效。
如何工作
那么,一串JWT是如何发挥其作用的呢?正常情况下,每个请求都像图片中的请求一样,所以可以传入。
记住内容前面的“承载者”是固定的,还得多加一个空格进行分段。
应用场景
基本上,大多数人使用JWT作为登录授权。比原来的session和cookie更快更安全,跨域不再是问题,更重要的是更优雅~
当然也可以用来传输数据,但是我个人觉得用在传输上不太好用(其实我觉得市场也有同感)。有几个原因:
1.如果数据是公开显示的,为什么我要在归还之前签名?
2.如果是私人数据,人们可以通过base64解码来查看。不合适吗?即使我加密了有效载荷内容,也会用这种方式加密好几次。我直接用其他加密方法。闻起来不香吗?
或许是现在的业务需求不太契合,童鞋们可以一起探讨一下。
最后
JW进入我的视野可能是因为。网芯。它比较轻便,优雅,基本独立于服务器,所以我基本上用它来做所有项目的登录授权。用了这么久都没仔细梳理,今天抽空写了一篇。我没有查什么文献,也没有什么高大上的词缀。我只是从我的角度阐述了我对它的理解。回过头来,在中编写另一个JWT实现。网芯。
关于JWT的组成和工作原理的文章到此为止。希望对大家的学习有帮助,也希望大家多多支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。