当前位置: 首页 > 知识库问答 >
问题:

java - 小白对 JWT 跟 session 有些疑问,期望解惑?

越正阳
2024-01-03

看了了许多文档,我的理解 JWT 本质上是一种将用户信息放到浏览器持久化的方案,这种方案要求服务端必须相信请求携带的 JWT 信息。

这种方案下是否能实现 用户权限动态变更的业务,比如踢人

若实现不了,需要服务端根据 JWT 查找用户信息, 是否又需要回归到 session 的解决方案

共有2个答案

江飞章
2024-01-03

JWT设计之初是为了解决无session化设计的问题,也就是服务端并不持久化任何JWT,客户端每次请求的时候携带JWT就行了

踢人这种场景是需要session化的,所以JWT不符合你的需求,非要用JWT你也就只能自己做session了

史磊
2024-01-03
  • jwt的优势在于,服务端收到请求后,可以直接拿到用户的身份信息,无需再查库或者访问数据中心之类的中心化服务。反过来说,只要存在类似踢人的需求,那么 jwt 的优势直接消失,反正都要查,在请求里放一个更小的 token 去查更简单
  • 所以 jwt 适合的场景其实是服务和服务之间的通信,网关获取到用户身份,做成 jwt 加到请求里,后续服务就不需要再访问用户服务这种中心服务了,而且一次请求一个 jwt,不需要考虑踢人之类的事情
  • 最后说一下 session,session 就是 session,类似一个 Map,客户端发请求带着一个 key,服务端用这个 key 拿到 session。最传统的 cookie 里放 sessionid 是最简单有效的方式,类似 app 这种非浏览器环境,token 其实也是起到 sessionid 的作用,而 jwt 其实就是把’去找 session‘的操作变成了’把 session 解析出来‘的操作
 类似资料:
  • 本文向大家介绍理解PHP中的Session及对Session有效期的控制,包括了理解PHP中的Session及对Session有效期的控制的使用技巧和注意事项,需要的朋友参考一下 0.什么是session?        Session的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。目前社会上对

  • 各位,目前在做一些项目优化的工作,有几个项目但是他们的webpack版本不一样,我想问问熟悉这方面的同学,关于多进程打包,多进程压缩各个版本之间是否存在差异?像webpack5这些本身是否就已经配置了?如果使用的是vuecli创建的项目会不会也配置了这些东西?还有splitChunks和tree shaking这些vuecli创建的项目或者说webpack本身是否自带的?第一次做这方面的优化,论坛

  • HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。 但是仍然有以下三种方式来维持 Web 客户端和 Web 服务器之间的 session 会话: Cookies 一个 Web 服务器可以分配一个唯一的 session 会话 ID 作为每个 Web 客户端的 cookie,对于客户端的后续请求可以使用

  • 概念 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己” 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人 什么是授权(Authorization) 用户授予第三方应用访问该用户某些资源的权限 你在安装手机应用的时候,APP 会询问是否允许授予权限(访问相册、地理位置等权限) 实现授权的

  • 问题内容: 我正在解析一个数据集,该数据集令人讨厌地决定以逗号分隔TSV(PharmaGKB途径,我在看着你)中的项目,但是在每个逻辑元素中都允许使用逗号。 基本上,逗号后跟空格表示没有定界,而逗号后跟字符表示新元素。 “这是一个,一个,两个,三个元素” 应该: 这是一个元素 两个要素 三要素 我有regex ,它可以很好地拆分, 但是 每次拆分后都会删除第一个字符。 这是一个元素 元素 三元素

  • 我使用LocalDateTime几乎导致了一个在线错误,直到例如: 我最初认为他应该2天回来,但结果是1天! 然后我看了看对应的源代码,我现在好像明白了:如果超过一天,不到两天,那就只返回一天。 我想问一下Java或Spring中是否有满足我需求的工具。 我想让它回到2天,这符合人们的直觉。 当然,我可以包装一个实用程序类来实现这一点,但我想知道Java中是否有可用的实现? 我的业务场景如下:如果