@
jiangboenoch #37
当 Token 需要例如过期、自动续期这种功能时, 那他就应该是一个有状态的 token, 典型的比如用户登陆后标识此用户的令牌。
每个请求都根据 Token 去查库就行了,比如查 Redis 。
如果在 web 端使用的话放不放 Cookie 里随便,只是不放 Cookie 的话里就自己控制刷新咯。
像那种无状态的,也就是完全不经过 DB 那一层的,比如 JWT 这种。
他压根就不适合做用户令牌这种场景,也不知道是不是什么培训班灌输的思想钢印。
最适合 JWT 的场景是那种需要短时间获取权限的行为,比如 XX 时间内有效的下载、查看等这种接口。
硬是要用 JWT 来当用户令牌的话,那为了查这个令牌有没有被吊销掉,还是得每个接口都去查一次库。那你反正得查库,为啥不顺便查出用户信息?
所以说,如果只是用作用户标志的话, 那就是直接用一个全局不重复的字符串来当 token 就行了,每次请求查一次库。
最后再说一下。session 是会话,web 端的 token 就是这个会话的令牌, 无论是叫他 sessionId 也好,叫他 xxx-token 也罢,他都是一个东西。和他放在 Cookie 里还是 localStore 里没有任何关联。
token 是令牌的意思, 这个明白吧。
web 领域中的 session 也是一个用户的令牌, 这个没问题吧。
so, 我寻思 session 不就是 token 么(一种实现)? 没看懂在讨论什么
如果说的是 JWT (json web token)这种实现方式,这个确实是无状态的。
当你见到有人用 JWT 的同时, 还通过这个 JWT 去查库 /查缓存从而获取信息, 那么你应该判定这个人是个傻逼。