Files
nixcn-cms/middleware/jwt.go
2026-01-06 10:36:51 +08:00

30 lines
534 B
Go

package middleware
import (
"nixcn-cms/pkgs/authtoken"
"github.com/gin-gonic/gin"
)
func JWTAuth(required bool) gin.HandlerFunc {
return func(c *gin.Context) {
auth := c.GetHeader("Authorization")
authtoken := new(authtoken.Token)
uid, err := authtoken.HeaderVerify(auth)
if err != nil {
c.AbortWithStatusJSON(401, gin.H{"status": err.Error()})
return
}
if required == true && uid == "" {
c.AbortWithStatusJSON(401, gin.H{"status": "unauthorized"})
return
}
c.Set("user_id", uid)
c.Next()
}
}