Files
workspace/code/base-project/base-go-v2/internal/api/middleware/auth.go
T
2025-11-11 22:31:33 +08:00

43 lines
859 B
Go

package middleware
import (
response "base-go-v2/internal/reponse"
"base-go-v2/internal/router"
"base-go-v2/internal/utils/jwtx"
"fmt"
)
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 c.Next()
}
// Access Token 失效 → 返回刷新提示
if !tokenVerify.IsValid {
fmt.Println("===Access Token 失效===")
c.Abort()
return response.Fail(c).
Code(response.HttpCode.RefreshToken).
Message("Access Token 已过期,请刷新").
Send()
}
return c.Next()
}
}