package middleware import ( "nixcn-cms/internal/exception" "nixcn-cms/pkgs/authtoken" "nixcn-cms/utils" "github.com/gin-gonic/gin" ) func JWTAuth() gin.HandlerFunc { return func(c *gin.Context) { auth := c.GetHeader("Authorization") authtoken := new(authtoken.Token) uid, err := authtoken.HeaderVerify(auth) if err != nil { errorCode := new(exception.Builder). SetStatus(exception.StatusServer). SetService(exception.MiddlewareServiceJwt). SetEndpoint(exception.EndpointMiddlewareService). SetType(exception.TypeSpecific). SetOriginal(exception.CommonErrorUnauthorized). Build() utils.HttpAbort(c, 401, errorCode) return } c.Set("user_id", uid) c.Next() } }