- 主题:jwt相比普通token,优势在哪?
其实就是sessionId。
可能没搞懂,所以发明了 jwt.
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 我反正一直没想明白用 jwt 是为什么。
: 一个猜想是 android/java 程序员的 http client 库没有管理 session 的能力,所以只好重新发明一个 sessionid 出来.
--
FROM 183.95.135.*
cookie还可以下次重新打开浏览器用啊
header可以吗?
【 在 eGust (十年) 的大作中提到: 】
: 这东西跟客户端有一毛钱的关系么?jwt 也一样,cookie 还是放 header 它都是 jwt,再说本来 cookie 也是 header
--
FROM 183.95.135.*
看来与原来的区别主要是标准化,其次是 标准包含了加密和签名。
【 在 xWvxYWYxvWx (xWvxYWYxvWxxWvxYWYxvWx) 的大作中提到: 】
: 1. 一种规范和标准,跨框架跨语言,省掉各种姿势奇特的编码解码问题。
: 2. 服务器端可以做 stateless 的实现,不需要存储 token/cookie. 但这么做会同
时带来无法及时 invalid 掉特定 token 的问题,所以服务器端 stateful 也很常见。
: 3. 可以把若干信息明文或加密编码进 token 里,加签名防冒用,服务器端直接取
用。
: ...................
--
FROM 183.95.135.*
感觉好像 重新 做了一套 证书?相当于分发证书。
【 在 eGust (十年) 的大作中提到: 】
: 啥意思,没看懂,但跟旧的 session id 要不要通过验证是等价的,session 啥样 jwt 就啥样
: 你要搞清楚,jwt 跟 session 在本质上是没差别的,都是证明是由服务器签发的 token。不同的是验证方式,session 放在内存/硬盘里,jwt 不存,通过私钥来验证签名是由服务器发出的。session 需要把跟 token 对应的信息都放在内存/硬盘里,jwt 把对应的信息放在签名里面了。
: 其它的方面没有任何差别,任何你觉得需要放在服务器内存/硬盘里的东西,通过私钥签个名连带着关联的东西发出去就完了。甚至是不是 jwt 都不重要,只不过 jwt 标准化了,各个语言都有实现。
: ...................
--
FROM 183.95.135.*
从你的补充看,jwt这个缺点大了啊。根本扛不住攻击(比如 大量invalid joken涌进来)
【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: 讲得很好,赞
: 补充一点,jwt唯一的缺点我觉得就是无法即时invalid一个特定的token,如果业务需要,必须另作一个类似于session的小invalided joken池。因为不太可能短时间内遇到大量需要invalid的jwt,所以这个池子一般放单机内存就够了,不会使得架构更加复杂化。
: 另外值得提的区别就是,jwt服务端加解密稍微会多耗一点cpu,而session方案或者多耗点内存或者多耗点时间(硬盘io or redis 网络io)。
--
FROM 183.95.135.*