golang iris jwt 访问验证时候,判断 token 是否被强制失效?

starwu · · 963 次点击 · 开始浏览    置顶
github.com/iris-contrib/middleware/jwt应用成功,可以正常签发token和验证token;但可以反复重复的登录签发新的token,在过期时间内所有的token都可以正常通过验证,不符合项目的需求; - 项目需求:第二次登录后,前一次的token将无法失效; - 功能实现: 1. 用户登录签发token是,将token和user_id保存到redis,注:覆盖保存,一个user_id只有一个token; 2. 每次访问验证jwt时候,先去redis里面对比存储的token,与携带的token是否一致;如果一致则继续,如果不一致提示登录过期,您的账号在其他地方已登录; - 问题: 如何在CheckJWT之前加入对比redis里面的token的代码?go里面没有重载,我想自己实现(middleware.JwtHandler().Serve)的方法,但是对golang理解不够,无从下手,求高手指点; ```go // middleware/jwt.go package middleware import ( "github.com/iris-contrib/middleware/jwt" ) const JwtSignString = "liLHidCSos2osjOb" /** * 验证 jwt * @method JwtHandler */ func JwtHandler() *jwt.Middleware { var mySecret = []byte("liLHidCSos2osjOb") return jwt.New(jwt.Config{ ValidationKeyGetter: func(token *jwt.Token) (interface{}, error) { return mySecret, nil }, SigningMethod: jwt.SigningMethodHS256, }) } // router.go ... usersParty.Use(middleware.JwtHandler().Serve, casbinMiddleware.ServeHTTP) ... ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

963 次点击  
加入收藏 微博
2 回复  |  直到 2021-08-16 20:08:45
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传