12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package my_middleware
- import (
- "dy-admin/internal/pcmserver/pkg/code"
- "dy-admin/pkg/jwt"
- "dy-admin/pkg/rescode"
- "github.com/gin-gonic/gin"
- )
- func JWTAuth(j *jwt.JWT) gin.HandlerFunc {
- return func(c *gin.Context) {
- if j == nil {
- rescode.WriteErrResponse(c, code.ErrCodeMap[code.ErrJwtInstanceCode])
- c.Abort()
- return
- }
- token := c.Request.Header.Get("Authorization")
- if token == "" {
- rescode.WriteErrResponse(c, code.ErrCodeMap[code.ErrMissingHeaderCode])
- c.Abort()
- return
- }
- claims, err := j.ParseToken(token)
- if err != nil {
- if err == jwt.TokenExpired {
- rescode.WriteErrResponse(c, code.ErrCodeMap[code.ErrTokenExpiredCode])
- c.Abort()
- return
- }
- rescode.WriteErrResponse(c, code.ErrCodeMap[code.ErrTokenInvalidCode])
- c.Abort()
- return
- }
- c.Set("claims", claims)
- c.Set("username", claims.Username)
- c.Next()
- }
- }
|