需求:
用户在新设备上登录账户,我需要把上次登录生成的token撤销掉,查看了jwt-go的文档没有找到相关的方法。
服务端新手,是我对jwt认识不够,jwt实际上就是一段 (数据段转base64后的字符串)+(数据段的签名), 服务端拿到token也只是对签名做验证,检验数据段的合法性,数据段的字符串经过base64解码就可以还原;
所以jwt本身不存在什么删除和销毁的操作, 刷新token实际上就是修改数据段中过期时间或者其它值,然后再签名生成一个全新的tokenString, 但是之前的tokenString仍然可用,除非是已经过期的,所以要实现注销功能只能从服务器端增加类似tokenString白名单,或者每个用户使用不同的jwtSecret(签名密钥),每次生成新的tokenString钱都更换jwtSecret,这样旧的token就会验证失败。
#5
更多评论