jwt.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package middleware
  2. import (
  3. "git.wanbits.cc/sin/flytalk/tools"
  4. "github.com/gin-gonic/gin"
  5. "time"
  6. )
  7. func JwtPageMiddleware(c *gin.Context) {
  8. //暂时不处理
  9. //token := c.Query("token")
  10. //userinfo := tools.ParseToken(token)
  11. //if userinfo == nil {
  12. // c.Redirect(302,"/login")
  13. // c.Abort()
  14. //}
  15. }
  16. func JwtApiMiddleware(c *gin.Context) {
  17. token := c.GetHeader("token")
  18. if token == "" {
  19. token = c.Query("token")
  20. }
  21. userinfo := tools.ParseToken(token)
  22. if userinfo == nil || userinfo["name"] == nil || userinfo["create_time"] == nil {
  23. c.JSON(200, gin.H{
  24. "code": 400,
  25. "msg": "验证失败",
  26. })
  27. c.Abort()
  28. return
  29. }
  30. createTime := int64(userinfo["create_time"].(float64))
  31. var expire int64 = 24 * 60 * 60
  32. nowTime := time.Now().Unix()
  33. if (nowTime - createTime) >= expire {
  34. c.JSON(200, gin.H{
  35. "code": 401,
  36. "msg": "token失效",
  37. })
  38. c.Abort()
  39. }
  40. c.Set("user", userinfo["name"])
  41. //log.Println(userinfo)
  42. //if userinfo["type"]=="kefu"{
  43. c.Set("kefu_id", userinfo["kefu_id"])
  44. c.Set("kefu_name", userinfo["name"])
  45. c.Set("role_id", userinfo["role_id"])
  46. //}
  47. }