发现很多人分不清 jwt 和类 session token 的区别?

查看 62|回复 2
作者:xiaomada   
起因是今天一个群里有兄弟问修改密码后 jwt 怎么失效过期问题,然后一个小伙子说现在所有的接口开发都是使用 jwt ,我一瞬间都有些怀疑是不是自己记忆错乱了,因为我自己向来是非必要不使用 jwt 的,主要是这玩意签发后不可控,而且我抓包过一些大厂的应用,基本没见过头部厂商使用 jwt 做客户端和服务端 API 认证的,服务端与服务端之间有一些,比如 OIDC 里的 jwt ,然后小厂商应用还是有不少用 jwt 的,但明显达不到全使用 jwt 这种说法,半壁江山都很难说。
我质疑了这小伙几句,这小伙子居然嘲讽起我,让我不会走就别学跑,想想自己是不是天才,给我气麻了。
然后我也懒得打嘴炮,决定自己求证一下,然后搜到的内容就更让我焦麻了,因为我理解的 token 是这样的有两种
1 、Json web token (jwt)
2 、类 SESSION 模型 Token (没有统一叫法,原理为自定义生成 token ,token 对应信息在服务端储存,一般 redis 中,原理基本与 SESSION 相同,只不过 session_id 变成了 token ,且不再由后端写入到 cookie 中)
这两种 token 模式对客户端来说都区别不大,唯一的区别是 jwt 可以解读信息,2 不可由客户端解读。
然后我搜到的帖子和讨论给我惊呆了,很多程序员分不清这两种 token 的区别,包括很多后端,令我错愕的好几点:
1 、很多人固执的认为,session 是网页时代的东西了,现在的 spa 页面和 APP 都只能使用 jwt
2 、分不清 token 本身有好几种实现模式。
3 、有的前端虽然在使用 jwt ,但他们不知道 jwt 本身载了内容,也不会去解析,因为后端直接给他们一次签发几个月有效期的。
这种感觉就像我之前发现很多人分不清前端和 web 前端的区别一样,我一直以为这些似乎是常识,但是突然好像发现并不是

jwt, token, Session, 区别

cgpiao   
各行各业的大部分本来就是半桶水。
尤其是一直做重复工作的人。
软件行业不自己研究,99%都学不到东西。
就整天比语言,框架啥的。
dlmy   
Redis + Token 方案适用于基于浏览器的应用,JWT 适用于内网鉴权和移动端 APP (适用于提供给服务端的 API ,由调用方主动生成,主动去维护,例如:IOS 登录、APNS 的 API )。
这些道理我都明白,但是公司项目直接是 JWT + Redis 一把梭,直接变缝合怪。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部