| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- package jwt
 
- import (
 
- 	//"strings"
 
- 	"tmr-watch/pkg/e"
 
- 	"tmr-watch/pkg/util"
 
- 	jwtGet "tmr-watch/pkg/util"
 
- 	"github.com/dgrijalva/jwt-go"
 
- 	"github.com/gin-gonic/gin"
 
- )
 
- func JWT() gin.HandlerFunc {
 
- 	return func(c *gin.Context) {
 
- 		var code int
 
- 		var data interface{}
 
- 		code = e.SUCCESS
 
- 		//Authorization := c.GetHeader("Authorization")
 
- 		//token := strings.Split(Authorization, " ")
 
- 		Authorization := c.GetHeader("token")
 
- 		token := Authorization
 
- 		if Authorization == "" {
 
- 			code = e.INVALID_PARAMS
 
- 		} else {
 
- 			//_, err := util.ParseToken(token[1])
 
- 			_, err := util.ParseToken(token)
 
- 			if err != nil {
 
- 				switch err.(*jwt.ValidationError).Errors {
 
- 				case jwt.ValidationErrorExpired:
 
- 					code = e.ERROR_AUTH_CHECK_TOKEN_TIMEOUT
 
- 				default:
 
- 					code = e.ERROR_AUTH_CHECK_TOKEN_FAIL
 
- 				}
 
- 			}
 
- 		}
 
- 		if code != e.SUCCESS {
 
- 			c.JSON(e.SUCCESS, gin.H{
 
- 				"code": code,
 
- 				"msg":  "登录超时",
 
- 				"data": data,
 
- 			})
 
- 			c.Abort()
 
- 			return
 
- 		}
 
- 		t, _ := jwt.Parse(token, func(*jwt.Token) (interface{}, error) {
 
- 			return jwtGet.JwtSecret, nil
 
- 		})
 
- 		c.Set("jwt_username", jwtGet.GetIdFromClaims("username", t.Claims))
 
- 		c.Next()
 
- 	}
 
- }
 
 
  |