package middleware import ( "net/http" "tyc-server/app/main/api/internal/config" ) type AuthInterceptorMiddleware struct { Config config.Config } func NewAuthInterceptorMiddleware(c config.Config) *AuthInterceptorMiddleware { return &AuthInterceptorMiddleware{ Config: c, } } func (m *AuthInterceptorMiddleware) Handle(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { // 从请求头中获取Authorization字段 // authHeader := r.Header.Get("Authorization") // if authHeader != "" && strings.HasPrefix(authHeader, "Bearer ") { // // 提取JWT令牌(去除Bearer前缀) // tokenString := strings.TrimPrefix(authHeader, "Bearer ") // // 使用jwtx.ParseJwtTokenV2()解析令牌 // claims, err := jwtx.ParseJwtTokenV2(tokenString, m.Config.AdminConfig.AccessSecret) // if err != nil { // resultErr := errors.Wrapf(xerr.NewErrMsg("用户名或密码错误"), "用户登录, 用户名或密码错误, 用户名: %s") // result.HttpResult(r, w, nil, resultErr) // return // } // // 如果解析失败,可以添加处理代码,如返回401错误 // } // 如果没有Authorization头或解析失败,继续传递到下一个处理器 // 根据业务需求可以决定是否继续处理请求 next(w, r) } }