2024年最全不要盲目使用新技术,说的就是你,JWT!(2),2024年最新字节面试算法题

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
就答题情况而言,第一问100%都可以回答正确,第二问大概只有50%正确率,第三问能回答正确的就不多了,第四问再正确就非常非常少了。其实此题并没有太多刁钻匪夷所思的用法,都是一些可能会遇到的场景,而大多数人但凡有1年到2年的工作经验都应该完全正确才对。
只能说有一些人太急躁太轻视了,希望大家通过此文了解js一些特性。

并祝愿大家在新的一年找工作面试中胆大心细,发挥出最好的水平,找到一份理想的工作。

无状态没有错!
无状态没有错!
无状态没有错!

我们聊的JWT对标的是 Session ,不是 Cookie
我们聊的JWT对标的是 Session ,不是 Cookie
我们聊的JWT对标的是 Session ,不是 Cookie

错的是什么?是盲目使用
在座各位有多少人能准确回答出上一节的三个问题?

  1. 你真的知道JWT到底解决了怎样的问题?
  2. 你很清楚JWT有什么优点和缺点?
  3. 你知道JWT是用于什么场景的?

给自己一个靠谱的答案,你为什么要用JWT?
我百度谷歌搜索了一下,发现用 JWT 的文章真的是少数,用 Identity 和 Session 的文章很多,这超出了我的预料
为什么身边的项目包括群友公司的项目全是 JWT?

JWT 与登录

JWT 的核心是无状态、自验证、无中央服务器,有超时时间等机制,我们所实现的登录功能,本质上是一个状态保持的机制,要保持,就会有断开的需求,JWT 能实现断开吗?不能。
JWT 的核心应用场景根本不是状态保持!
https://www.baidu.com/s?wd=jwt会话保持&rsv_spt=1&rsv_iqid=0x9d65b70000004423&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=11&rsv_sug1=10&rsv_sug7=100&sug=jwt%E4%BC%9A%E8%AF%9D%E4%BF%9D%E6%8C%81%20%E5%88%B7%E6%96%B0&rsv_n=1&rsv_t=576d%2BK65G9Uk60klbPpQEAyfnAnSKdDcE476BRPqSajtXpQkE0rXpLQDtHtdE8AvX51v&rsv_sug2=0&rsv_btype=i&inputT=4864&rsv_sug4=4864

百度早已有了不要用JWT做状态保持的文章,这根本就不是一回事!

JWT 的核心在于不需要中央服务器的验证,它可没说验证状态要保持啊。是的,超时时间的机制确实很像状态保持,但是因为 JWT 无状态的特性,它难以实现状态保持的完整功能。
比如说,我想续期,怎么办?

有的同学说了,旧KEY作废发个新KEY,作废的KEY保存在内存当中

你这和“我为了潮流买了个有洞的内裤结果发现外面还得再套一个内裤才不冷”有啥区别呢?
没错,这位同学的方案就是大家的方案,可是,这么明显的问题(不是JWT的问题),你为什么还要坚持JWT?
坚持JWT的重点就是无状态,然而作废的KEY保存在内存中不就又回到了有状态吗?你为什么还要坚持JWT?

大哥们推荐JWT的理由

我所知道的理由如下。无状态这条就不用说了:

  1. 不走 Cookie,移动端没有 Cookie
  2. 比 Cookie 更安全,CSRF攻击

这两条都有一个相同的问题,不用 JWT 就非得用 Cookie?
JWT 对标的解决方案是 Session,不是 Cookie
有人说 Session 就是基于 Cookie 的。
那么,Cookie 是基于什么的?基于 HTTP 头的
JWT呢?不还是 HTTP 头吗?
都是从头里读的,我改一下不从 Cookie 字段读不就行了?
有人又说,这不麻烦啊,现成的JWT方案很多,拿过来就用。
那么,出问题的时候你是加班到十点还是第二天第一个人打卡?
再者,Session 不见得没有方案,老外那帮人天天可是闲得慌。

JWT 的应用场景

这么说,JWT是。。。。废物?
哎别喷我啊你看完再喷呀。。。。。

我一直在找 JWT 的应用场景,但是除了三高(高并发、大数据、高可用)场景之外,我是真没找到合适的。。。
但是谷歌还是有大神,有位大神表示下面这个场景适用于 JWT

邮箱链接验证

这功能大家都知道,向用户邮箱发个链接,要求这个链接在5分钟之内点击来验证邮箱有效性,这个场景用 JWT 再适合不过了,量身定作的。

其他的,我是真不知道有啥场景。

不要再一切皆 JWT了

总结

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

前端资料汇总

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值