其实我自己一直都在使用 JWT,用着用着其实没什么感觉,但是如果一个新的语言,新的项目从头开始,还的确不怎么友好,最大的问题,其实就像 @LeeReamond 在 登录最佳实践是什么? 里说的
jwt 只能应对它的初始设计场景,也就是令牌签发后有效期内一直有效。如果你有后续的需求,比如用户的令牌丢了,或者用户想要改密码,要让已签发的令牌失效,那么 jwt 就不能做到,需要在 jwt 基础上再加补丁。而补丁的实现,由于把存在性校验换成了不存在性校验,算法上确实可以做到一定的优化,但这种优化往往只有在特大数据量下才能表现出实际差距,考虑到开发成本,这未必值当。对于没想清楚需求的应用来说,直接保存 sessionid 是最直接也最方便的做法。
那么我在用 JWT
的时候是怎么做的呢?
在用户表里加入
nonce
字段,把这个字段当作jwt
的nonce
传到 payload 里面。
目前尚无回复