Files
workspace/code/base-project/base-go-v2/internal/api/middleware/auth.go
T
2025-11-11 16:35:32 +08:00

40 lines
802 B
Go

package middleware
import (
response "base-go-v2/internal/reponse"
"base-go-v2/internal/router"
"base-go-v2/internal/utils/jwtx"
)
func AuthMiddleware() router.HandlerFunc {
return func(c *router.Context) error {
token := c.Header("token")
if token == "" {
c.Abort()
return response.Fail(c).
Code(response.HttpCode.Unauthorized).
Message("未提供 Token").
Send()
}
tokenVerify := jwtx.VerifyToken(token)
// Access Token 有效
if tokenVerify.IsValid {
c.SetUserID(tokenVerify.Claims.UserID)
return nil
}
// Access Token 失效 → 返回刷新提示
if !tokenVerify.IsValid {
c.Abort()
return response.Fail(c).
Code(response.HttpCode.RefreshToken).
Message("Access Token 已过期,请刷新").
Send()
}
return c.Next()
}
}