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.StatusUser). SetService(exception.MiddlewareServiceJwt). SetEndpoint(exception.EndpointMiddlewareService). SetType(exception.TypeCommon). SetOriginal(exception.CommonErrorUnauthorized). SetError(err). Build() utils.HttpAbort(c, 401, errorCode) return } c.Set("user_id", uid) c.Next() } }