1
IvanLi127 47 天前
我觉得只跑一个实例单体应用都不适合。其他情况或许有适合的用例。
要用 jwt 实现的话,做 token 黑名单查也能做出实时的效果。 |
2
renmu 47 天前 via Android
不合适
|
3
crysislinux 47 天前 via Android
登录还是 session 做吧。
|
4
CodeY99 47 天前
感觉除非分布式要求非常高,无数台机子要分布式验证,真心不如 session
|
5
excxapp 47 天前
JWT 有个办法,就是针对 token 增加时间戳,每次删除后,更新最新的时间戳,然后存到 redis 里面,比较时间戳之后的即可
|
6
zhenjiachen 47 天前 via iPhone
@excxapp 这不就是 session 吗?这样有啥意义,用着 jwt 但是自己造了个 session ?
|
7
Belmode 47 天前 via Android
想法很好,设计是可行的。不过有点需要注意,如果权限数据很多,不建议直接放到 jwt 里。
|
8
excxapp 47 天前
@zhenjiachen jwt 的优势加个个性化需求了呗,楼主就是要登出,不然咋实现叻
|
9
dreamk 47 天前
jwt 是无状态的,踢人不适合 jwt ,用黑名单反而复杂了
|
10
dreamk 47 天前
grpc 可以用 basic auth 加盐的密码,放到 metadata ,类似于 http1 rest 请求的请求头
|
11
wxf666 47 天前 via Android
|
15
bluearc 47 天前
可以,在下发 jwt 前先存储 tokenid ,用户登出后销毁 tokenid,不过这样事实上也就变成 session 了,如果 tokenid 过期时间长的话可以用黑名单,时间短的话还是仅记录每个用户最新的 tokenid
|
16
qsnow6 47 天前 1
jwt 主要是用于资源鉴权使用的,登录状态的保留最佳实践就是 session 。我司 PHP 就是把 jwt 当 session 使用,导致服务器要踢用户下线时(改密码、修改权限)非常麻烦。
|
17
amlee 47 天前
jwt 的设计理念就是无状态呀,你这“登出”的功能本身就是有状态的设计。
如果强行使用 jwt 来做登录、登出,那么必然后台要维护一个 jwt 的黑名单,这就又把状态引入回来了 直接用 session 就好了 |
18
iseki 47 天前 via Android
即使这样我觉得用 JWT 也不是不行:
1. JWT 有标准化的规格说明,IETF RFC ; 2. 没必要为了节省传递 token 的那点流量把自己的路堵死,日后万一需要无状态降级也有机会; |
19
vishun 47 天前
jwt 压根不适合普通的用户登录,应用场景也非常有限,像是 ruoyi 系统这种用 jwt 作为普通 token ,只增加了解析复杂度和 token 长度这些缺点,换成随机字符串要好很多。
|
20
lairdnote 47 天前
有 refresh 时间短点就搞定啊
|
21
xuanbg 47 天前
你这个就别用什么 JWT 了,一个 sessionId 发给用户,然后后端根据这个 id 来读取用户权限进行鉴权就好了。把一堆的授权信息放在 JWT 里面,纯纯的浪费流量
|