搜索

查看: 3047|回复: 11

[ASP.NET] 什么是JWT超详细讲解

[复制链接]
发表于 2023-5-4 11:26:11 | 显示全部楼层 |阅读模式
Editor 2023-5-4 11:26:11 3047 11 看全部
什么是JWT?
JWT(json web token),它并不是一个具体的技术实现,而更像是一种标准。
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
JWT规定了数据传输的结构,一串完整的JWT由三段落组成,每个段落用英文句号连接(.)连接,他们分别是:Header、Payload、Signature,所以,常规的JWT内容格式是这样的:AAA.BBB.CCC
并且,这一串内容会base64加密;也就是说base64解码就可以看到实际传输的内容。接下来解释一下这些内容都有什么作用。
Header
Header包含加密的方式、type,比如:

2022120814194641.png

2022120814194641.png


Payload
然后我们来看BBB代表的Payload:
顾名思义,这里就会包含实际传递的参数内容,比如:

2022120814194642.png

2022120814194642.png


记住,在这里不要传递那些很敏感的数据,因为只要base64解码就可以看到,除非你还额外加密一层。
Signature
最后一部分是CCC代表的Signature,当然也是字面意思——签名,base64解码后,是这个样子:

2022120814194643.png

2022120814194643.png


它主要决定了Header、Payload有没有被人篡改;如果内容被篡改,那么这条JWT将会被视为无效。
如何工作
那么,一串JWT如何发挥它的作用呢?正常来说,每一次请求都像图里这样就传入就可以了。

2022120814194644.png

2022120814194644.png


记住内容前面的“Bearer”是固定的,并且还得多加一个空格做分割。
应用场景
基本上绝大部分的人都用JWT做登录授权,它相比原先的session、cookie来说,更快更安全,跨域也不再是问题,更关键的是更加优雅~
当然它也可以用来传递数据,只不过我个人觉得做传输不太好用(实际上我想市场也这么觉得),原因几点:
1、如果是公开展示数据的话,我何必先加签才返回呢?
2、如果是私密数据的话,人家base64解码就能看到,不合适吧?即便我把payload内容加密,可这样一来就加密好几次了,我直接用别的加密手段它不香么?
或许是目前的业务需求并没有很契合,童鞋们遇到了可以一起讨论下。
最后
JWT大概是和 .Net Core 一起进入我视野的,它相对轻便、优雅,对服务器基本没依赖,所以我基本所有项目的登录授权都在用它。用它这么久了还没仔细梳理下,所以今天抽时间写一篇。没有翻查什么文献,也没有很高大上的词缀,就是单纯以我的角度阐述我对它的认识。回头再补一篇JWT在.Net Core的实现。
到此这篇关于什么是JWT超详细讲解的文章就介绍到这了,更多相关JWT是什么内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-29 04:35:14 | 显示全部楼层
六翼天使494 2023-6-29 04:35:14 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-29 10:03:23 | 显示全部楼层
幸福341 2023-6-29 10:03:23 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-6-29 11:00:41 | 显示全部楼层
贺老师 2023-6-29 11:00:41 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-6-29 18:22:16 | 显示全部楼层
执着等待等wc 2023-6-29 18:22:16 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-29 18:43:05 | 显示全部楼层
丁侦球 2023-6-29 18:43:05 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-6-29 20:11:10 | 显示全部楼层
哈哈SE7 2023-6-29 20:11:10 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-6-29 21:15:05 | 显示全部楼层
123456833 2023-6-29 21:15:05 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-29 23:45:17 | 显示全部楼层
米老鼠和蓝精鼠v 2023-6-29 23:45:17 看全部
楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
回复

使用道具 举报

发表于 2023-6-30 09:10:34 | 显示全部楼层
掌舵的鱼1987 2023-6-30 09:10:34 看全部
楼主,大恩不言谢了!知鸟论坛是最棒的!
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表