Files
workspace/code/base-project/base-go-v2/internal/api/middleware/auth.go
T
2025-11-11 17:27:41 +08:00

48 lines
973 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 {
fmt.Println("===请求进入===")
token := c.Header("token")
if token == "" {
fmt.Println("===未提供 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()
}
fmt.Println("===请求通过===")
return c.Next()
}
}