Files
nixcn-cms/middleware/jwt.go
Asai Neko 6a9c013799
All checks were successful
Build Backend (NixCN CMS) TeamCity build finished
Build Frontend (NixCN CMS) TeamCity build finished
Use utils.HttpResponse/Abort to replace c.JSON/Abort
Signed-off-by: Asai Neko <sugar@sne.moe>
2026-01-06 12:49:55 +08:00

31 lines
524 B
Go

package middleware
import (
"nixcn-cms/pkgs/authtoken"
"nixcn-cms/utils"
"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 {
utils.HttpAbort(c, 401, "", "unauthorized")
return
}
if required == true && uid == "" {
utils.HttpAbort(c, 401, "", "unauthorized")
return
}
c.Set("user_id", uid)
c.Next()
}
}