范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

虾皮二面什么是JWT?如何基于JWT进行身份验证?

  相关面试题如下:  什么是 JWT?为什么要用 JWT?  JWT 由哪些部分组成?  如何基于 JWT 进行身份验证?  JWT 如何防止 Token 被篡改?  如何加强 JWT 的安全性?  如何让 Token 失效?  ......  什么是 JWT?
  JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。
  Token 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力。
  可以看出, JWT 更符合设计 RESTful API 时的「Stateless(无状态)」原则  。
  并且, 使用 Token 认证可以有效避免 CSRF 攻击,因为 Token 一般是存在在 localStorage 中,使用 JWT 进行身份验证的过程中是不会涉及到 Cookie 的。
  我在  JWT 优缺点分析[1] 这篇文章中有详细介绍到使用 JWT 做身份认证的优势和劣势。
  下面是  RFC 7519[2]  对 JWT 做的较为正式的定义。
  JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted. —— JSON Web Token (JWT)[3]  JWT 由哪些部分组成?
  JWT 本质上就是一组字串,通过(.  )切分成三个为 Base64 编码的部分: Header  : 描述 JWT 的元数据,定义了生成签名的算法以及 Token   的类型。 Payload  : 用来存放实际需要传递的数据 Signature(签名)  :服务器通过 Payload、Header 和一个密钥(Secret)使用 Header 里面指定的签名算法(默认是 HMAC SHA256)生成。
  JWT 通常是这样的:xxxxx.yyyyy.zzzzz  。
  示例: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ. SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
  你可以在 jwt.io[4]  这个网站上对其 JWT 进行解码,解码之后得到的就是 Header、Payload、Signature 这三部分。
  Header 和 Payload 都是 JSON 格式的数据,Signature 由 Payload、Header 和 Secret(密钥)通过特定的计算公式和加密算法得到。
  Header
  Header 通常由两部分组成: typ  (Type):令牌类型,也就是 JWT。 alg  (Algorithm) :签名算法,比如 HS256。
  示例: {   "alg": "HS256",   "typ": "JWT" }
  JSON 形式的 Header 被转换成 Base64 编码,成为 JWT 的第一部分。 Payload
  Payload 也是 JSON 格式数据,其中包含了 Claims(声明,包含 JWT 的相关信息)。
  Claims 分为三种类型: Registered Claims(注册声明)  :预定义的一些声明,建议使用,但不是强制性的。 Public Claims(公有声明)  :JWT 签发方可以自定义的声明,但是为了避免冲突,应该在 IANA JSON Web Token Registry[5]  中定义它们。 Private Claims(私有声明)  :JWT 签发方因为项目需要而自定义的声明,更符合实际项目场景使用。
  下面是一些常见的注册声明: iss  (issuer):JWT 签发方。 iat  (issued at time):JWT 签发时间。 sub  (subject):JWT 主题。 aud  (audience):JWT 接收方。 exp  (expiration time):JWT 的过期时间。 nbf  (not before time):JWT 生效时间,早于该定义的时间的 JWT 不能被接受处理。 jti  (JWT ID):JWT 唯一标识。
  示例: {   "uid": "ff1212f5-d8d1-4496-bf41-d2dda73de19a",   "sub": "1234567890",   "name": "John Doe",   "exp": 15323232,   "iat": 1516239022,   "scope": ["admin", "user"] }
  Payload 部分默认是不加密的,一定不要将隐私信息存放在 Payload 当中!!!
  JSON 形式的 Payload 被转换成 Base64 编码,成为 JWT 的第二部分。 Signature
  Signature 部分是对前两部分的签名,作用是防止 Token(主要是 payload) 被篡改。
  这个签名的生成需要用到: Header + Payload。 存放在服务端的密钥(一定不要泄露出去)。 签名算法。
  签名的计算公式如下: HMACSHA256(   base64UrlEncode(header) + "." +   base64UrlEncode(payload),   secret)
  算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用"点"(.  )分隔,成为 JWT 的第三部分。 如何基于 JWT 进行身份验证?
  在基于 Token 进行身份验证的的应用程序中,服务器通过 Payload、Header 和Secret  (密钥)创建Token  (令牌)并将 Token   发送给客户端。客户端接收到 Token   之后,会将其保存在 Cookie 或者 localStorage 里面,以后客户端发出的所有请求都会携带这个令牌。
  简化后的步骤如下: 用户向服务器发送用户名、密码以及验证码用于登陆系统。 如果用户用户名、密码以及验证码校验正确的话,服务端会返回已经签名的 Token  。 用户以后每次向后端发请求都在 Header 中带上这个 Token  。 服务端检查 Token   并从中获取用户相关信息。
  两点建议: 建议将 Token   存放在 localStorage 中,放在 Cookie 中会有 CSRF 风险。 请求服务端并携带 Token 的常见做法是将 Token   放在 HTTP Header 的 Authorization   字段中(Authorization: Bearer Token  )。
  spring-security-jwt-guide[6]  就是一个基于 JWT 来做身份认证的简单案例,感兴趣的可以看看。 JWT 如何防止 Token 被篡改?
  有了签名之后,即使 Token 被泄露或者解惑,黑客也没办法同时篡改 Signature 、Header 、Payload。
  这是为什么呢?因为服务端拿到 Token 之后,会解析出其中包含的 Header、Payload 以及 Signature 。服务端会根据 Header、Payload、密钥再次生成一个 Signature。拿新生成的 Signature 和 Token 中的 Signature 作对比,如果一样就说明 Header 和 Payload 没有被修改。
  不过,如果服务端的秘钥也被泄露的话,黑客就可以同时篡改 Signature 、Header 、Payload 了。黑客直接修改了 Header 和 Payload 之后,再重新生成一个 Signature 就可以了。
  密钥一定保管好,一定不要泄露出去。JWT 安全的核心在于签名,签名安全的核心在密钥。  如何加强 JWT 的安全性?使用安全系数高的加密算法。 使用成熟的开源库,没必要造轮子。 Token 存放在 localStorage 中而不是 Cookie 中,避免 CSRF 风险。 一定不要将隐私信息存放在 Payload 当中。 密钥一定保管好,一定不要泄露出去。JWT 安全的核心在于签名,签名安全的核心在密钥。 Payload 要加入 exp   (JWT 的过期时间),永久有效的 JWT 不合理。并且,JWT 的过期时间不易过长。 ...... 参考资料
  [1]
  JWT 优缺点分析: ./advantages&disadvantages-of-jwt.md
  [2]
  RFC 7519: https://tools.ietf.org/html/rfc7519
  [3]
  JSON Web Token (JWT): https://tools.ietf.org/html/rfc7519
  [4]
  jwt.io: https://jwt.io/
  [5]
  IANA JSON Web Token Registry: https://www.iana.org/assignments/jwt/jwt.xhtml
  [6]
  spring-security-jwt-guide: https://github.com/Snailclimb/spring-security-jwt-guide

苹果居然低头了,这不科学大家都听说了吧,8月5日美国科技巨头苹果公司已要求其供应商从台湾地区向中国大陆供货时须严格遵守中国海关的有关规定,即中国台湾地区生产的零部件进入中国大陆时,必须标明产地为中国台湾或性能表现不输苹果,这四款国产优质手机太香了国产手机不一定就比不过苹果,这四款国产手机非常香,想换机的朋友们不妨了解一下。iQOONeo6iQOONeo6采用可爱的云阶影像设计,颜值非常复古,搭载了骁龙8Gen1独立显示芯片在文字里谋心,在音乐里谋安终不是那八面玲珑的女子,只想在烟火里谋生,在月光下谋爱,在文字里谋心,在音乐里谋安。与独处相安,与万事言和。一个真正干净的人,必定见过人世的复杂与阴暗,也经历过世俗的纷扰和烂漫。知葡萄柚怎么吃,吃葡萄柚的注意事项葡萄柚是一种外观与橙子相似的水果,它维生素c的含量比较高,还还有一些天然多糖能为人体补充丰富营养。不过想让身体吸收葡萄柚中的营养,一定要掌握它的正确吃法,接下来我会为大家介绍葡萄酒中国女排第一女神魏秋月,新工作曝光,34岁颜值依旧,光彩照人说起中国女排的美女们,每个人心理都有好多个名字呼之欲出,比如惠若琪,张常宁等等,但是如果真的要做个序号,魏秋月绝对会是票数最多的颜值第一。有球迷好奇了,论五官和精致程度,魏秋月不一你知道世界上哪家公司总部最贵吗?可能你还用着这家公司的产品这是乔布斯最后的杰作,地球上最贵的公司总部建筑面积达26万平方米,可以容纳1。2万名员工,这就是苹果总部。有网友调侃说,乔布斯临终了,还给地球安了一个大大的home键,实在是费尽心针对世界级难题,中国学者实现技术跨越,创首个重磅成果近日,长江大学参与的中国首个自主研制的微米级裂缝物理模型构建成功并投入使用,此次模型的成功构建不仅有助于突破困扰测井专家学者们的世界级难题,更为今后国内外裂缝性油气藏裂缝测井定量评中国领跑全球,成功开发地下8000米油田!美国却为油丢尽脸面中国石化10日最新消息称,顺北油气田在地下8000米的深度试获高产工业油气流,折算日产油气当量达到1017吨。中国石化的负责人表示,此次试生产超千吨的油气井折算日产原油244吨天然提醒脑供血供氧不足,建议日常多吃四种坚果,对血管或有好处我们会遇到一些朋友经常出现头晕头疼等现象,这一般是因为他常年低头,颈椎神经被压迫,导致头部供血供氧不足引起的。头部供血供氧不足,还会出现视力模糊睡眠障碍等问题,严重的时候还有可能会轻巧折叠体验更佳,三星GalaxyZFlip4首发快速上手体验8月10日,三星电子推出了全新的折叠屏产品,此次推出的产品有三星GalaxyZFlip4和三星GalaxyZFold4两款产品。本期内容将为大家带来第一时间的现场上手,让我们一起来联想陈劲晒2亿像素三星HP1主摄实物接近1元硬币大小IT之家8月9日消息,经历延期后,摩托罗拉将于8月11日1400召开新品发布会,届时将带来motorazr2022motoX30PromotoS30Pro三款新机,其中motoX3谁解相思殇(原创)夜阑珊,星河暗淡,酒杯里映不出你的脸,只有孤月碎片,肝肠寸断,今夜无眠。岁月流转,相见初欢,海棠花艳,溪水缓缓剪不断。绿藤裹绕花紫嫣,也难比你我情亦绵今非昨,荷花垂泪愁秋长,燕子筑走得稳的人,都是慢性子听过一句话小时候,慢是一种性格,长大后,慢是一种能力。在快节奏的生活中,人人都争先恐后,慌慌张张,害怕落后别人,害怕被时代抛弃,很少停下来思考这样是否值得,也毫无幸福感可言。其实,机会来了?湖人或通过交易得到马尔卡宁,这是否会打破联盟格局?提到德克诺维斯基,让我想到的不止独有的金鸡独立,还有与身高不符的三分。三分数据生涯合计的1522场常规赛里,场均可以命中1。3个三分命中率38生涯合计的145场季后赛里,场均可以命小超梦用诺手打4000场老猴子,只抓住一波机会,就打出三倍补刀差在英雄联盟整整运营了十二年之后,有很多从S2S3时期,就开始接触这款竞技游戏的玩家,愣是从来都没有把版本更新内容放在眼里,在长达数年的游戏生涯中,一直坚持使用同一个英雄,什么打了上怎样做才能机会更多1胆大心细脸皮厚的人。2有资源,有人脉,有经验,并且敢于创业敢于冒险的人。3懂人情世故,懂得做人的道理,会做人,情商很高的人。4说话做事都能让人感觉到很舒服的人。5跟所有人都相处得重磅整治!有关部门集中整治虚拟币炒作!虚拟币不是货币重磅整治!近日,有关部门对当前社会存在的虚拟货币投机炒作诈骗等行为进行集中整治,并加大了对平台相关内容的审查和自查。尤其对于通过媒体拉新违规宣传平台的账号进行关闭和清理比如违规宣传为什么不建议存大额存单?内行人主要有4大原因中国老百姓爱存钱是出了名的,截止到2022年一季度,我国居民存款总额大概达到了111。13万亿元。不过,国内存钱的主力军还是中老年人,因为中老年人收入比较稳定,而且平时开销也不大,写写文章,留下美好回忆时间不停走到现在,自己虚岁已五十,最近总会不知不觉地想起以前的人物和事情。有人说这是人老了的表现爱回忆过去,以前的事情忘不掉,现在的事情记不住。想想也确实是这样,这既然是自然规律,生产队那个年代(四十七)童年趣事农村孩子游泳自由之路文郑学良人人都有自己的童年,童年的回味就像一杯陈酿,越久远越甘醇。对于上世纪六七十年代出生的人们来说,童年生活,在物质方面可能是平淡贫乏单调的,但却丝毫不影响童年的纯真和快乐。童年汤勇什么样的教育最美?你有没有这样的感受,也许你吃遍大江南北,山珍海味,难以忘怀的还是小时候父母给我们做的饭菜的味道也许你穿尽了各种名牌皮鞋服装,穿上感觉舒适的还是过去父母给我们纳的一双平底布鞋缝制的一外公的酒缘外公平生有四大爱好喝酒抽烟打牌喝茶。而这四大爱好里排第一的当属喝酒了。他骨子里保持着四川人最原始本质,爱享受喜欢逍遥自在的生活,因此他这一生过的平淡安稳,不为世俗之事苦恼忧愁,不追
宝宝红屁股怎么样才能快点好?看这篇护理攻略宝宝红屁股怎么样快点好带孩子的道路上会遇到很多这样那样的问题,宝宝红屁屁可以说是每个宝妈都会遇到的问题,今天给大家分享一下超全红屁屁的护理攻略首先,我们先来了解一下,宝宝红屁股形成令人泪目!一岁宝宝突患白血病,24岁新婚舅舅做了这个决定极目新闻记者刘迅通讯员高琛琛一岁大的男宝患上高危白血病,急需移植造血干细胞救命,但中华骨髓库没有合适配型,父母又因病无法捐献。就在宝宝生命岌岌可危时,24岁刚新婚的舅舅挺身而出,为新生儿恐惧的三件事,初为父母不可掉以轻心新生儿阶段,宝宝身体内脏发育不良,身体也较差。父母照料不合理,非常容易危害孩子健康的生长发育。尤其是这三样东西,新生儿最恐怖。初为父母者要及时避免,不要后悔。第一,三岁看大,七岁看卫报人类有可能前往探索的地外行星不是火星那么它是哪一颗中国小康网9月26日讯老马金星表面的温度足以融化铅,足以压碎一切的大气压力和硫酸云,听起来可能不是人类探索最诱人的目的地。金星表面的温度足以融化铅和存在硫酸云英国卫报报道,但是一组家里的旧手机不要丢,还可以用来这样玩在智能手机快速更新换代的现在,很多人手里或多或少会有淘汰下来的旧手机。对于品相还好的旧手机,人们都是送给别人,要不就是放上二手市场。但问题比较大的,比如屏幕摔坏,触摸失灵等,这种手荣耀MagicBookV142022对比华为MateBook14S2022,选哪款更好?现在的手机厂商是真的在做笔记本电脑了,尤其是华为荣耀小米这三家,每年都会推出好几款新的笔记本电脑,从2021年开始,realme也推出了RealmeBook笔记本,它是属于OPPO科技春晚落下帷幕,这四款新机紧随发布,勇气可嘉作为手机圈的两大顶流,华为跟苹果这俩好兄弟一个脚前一个脚后发布自家的最新旗舰。今年的华为和苹果之间的气氛可谓非常微妙。华为号称硬刚苹果,从最初的发布到如今的正式开售,可以说是好戏连比百亿补贴的AirPodsPro2更受欢迎?购买华强北耳机需谨慎每年的iPhone发布之后,不少果粉会第一时间奔向拼夕夕,蹲守破发的iPhone新品。而刚刚正式发售的AirPodsPro2,也在百亿补贴之后成为果粉的新宠。不过,对于果粉以外的普体验华强北耳机后,真AirPodsPro用户告诉你千万别买作为AirPodsPro深度用户,我一开始并不知道华强北耳机的存在,在偶然一次在视频中才了解到。随后,我因为好奇和这些耳机价格的确不高,我尝试了两款华强北耳机,并且使用了一段时间。抱怨不绝,大量用户称iOS16使iPhone续航力大减自iOS16正式发布以来,时有用户抱怨iPhone的电池续航力大减,事实上,这在新版本iOS推出后属正常情形。可不正常的是,这种情形通常不会持续许久,但直到更新推出2周后的今日,用近百人参与开发制作!光环无限要有大动作近日,与343深度合作的Affinity工作室透露了关于光环无限新项目的更多细节。他们对外媒表示,该项目是他们目前在做的最大规模的项目。首席执行官MaxHoberman说我们正在做延安的6大美食,当地人百吃不厌,外地人看了直摇头,实在吃不下延安是国家风景独特的旅游城市,这里的自然风光迷人,还有很多人文景观,来到这座城市,除了观赏美景以外,必要品尝当地的美食。延安当地有6大美食,当地人百吃不厌,外地人看了却直摇头,实在饭店炒的土豆为什么那么好吃?原来是这样做的,出锅酥甜又开胃生活没有彩排,美食没有美颜。大家好,今天给大家分享一个土豆不一样的吃法。土豆,我们生活里面非常常见的一种非常普通的食材。土豆可以用来做成非常好吃的各种美食,味道都是超级棒的。接下来被骂到降价?嘴上接棒保时捷,小鹏G9上市两天降三万别人是开完发布会预订,小鹏是开完发布会退订?这可能是有史以来,降价最快的一款车。三天前,小鹏汽车的新车发布会上,小鹏的创始人何小鹏,刚刚揭秘了新车G9的价格。但就在昨天下午,小鹏汽30分钟通过Kong实现。NET网关什么是KongOpenrestry是一个基于Nginx与Lua的高性能平台,内部有大量的Lua库。其中ngxluamoudule使开发人员能使用Lua脚本调用Nginx模块。Kon9月27日股市早知道元宇宙版双11呼之欲出元宇宙电商率先爆发今年双11大促期间,阿里将首次引入元宇宙大陆曼塔沃斯,消费者可在元宇宙中创造数字分身,并在元宇宙中获得双11的新消费体验。今年双11晚会上也双面大佬余承东语出惊人?背水一战美国制裁两年有余,华为终端业务持续缩水,连带着整个集团寒气弥漫。作为华为终端业务代言人的余承东,正在试图为华为开凿出新的沟渠引入活水。一个是两次带领华为逆境突围的明星高管,一个是频乐视学新东方直播一月卖出2万?网友李佳琦2秒就完成还记得那个欠下109亿巨债,但全网都在羡慕的乐视吗?早在2个月前,乐视就因为没有老板且不用996的神仙职场生活而上了热搜,然而就在最近,潇洒已久的员工们却突然自爆全员累病。此消息一英国新首相的世纪豪赌,迎来股债汇三杀文行走斯图卡特拉斯可以说是英国历史上最不走运的首相,前任留给她的是一个十足的烂摊子上任没几天,送走了女王伊丽莎白二世尝试跟美国总统拜登谈论自贸协定,却自取其辱就在王室工作人员还在适iPhone14销量太差,苹果十月发布会要凉凉了?这个月苹果才举行了秋季发布会,新机iPhone14口碑却一直不咋地,而与它本是同根生的iPhone14Pro却依靠灵动岛功能成功出圈,大受追捧。据媒体报道,受iPhone14销量不CI持续集成系统环境GitlabGerritJenkins完整对接近年来,由于开源项目社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发敏捷开发迭代开发持续集成和单元测试这些拉风的术语。国内公司能有完整的CI优秀开源云原生工具推荐系列1云原生技术在效率上的巨大优势,使其日益成为IT发展的主流趋势。根据Gartner的预测,到2025年,云原生平台将成为95以上的新数字化计划的基础。围绕云原生中的各个方面,都有这非