| 123456789101112131415161718192021222324252627282930313233343536 |
- package middleware
- import (
- "net/http"
- "strings"
- "ems-backend/utils"
- "github.com/gin-gonic/gin"
- )
- func AuthRequired() gin.HandlerFunc {
- return func(c *gin.Context) {
- auth := strings.TrimSpace(c.GetHeader("Authorization"))
- if auth == "" {
- c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Unauthorized"})
- return
- }
- tokenString := auth
- if strings.HasPrefix(strings.ToLower(auth), "bearer ") {
- tokenString = strings.TrimSpace(auth[7:])
- }
- claims, err := utils.ParseToken(tokenString)
- if err != nil {
- c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Invalid token"})
- return
- }
- c.Set("username", claims.Username)
- c.Set("userId", claims.UserID)
- c.Next()
- }
- }
|