1、示例报告改未登录可访问
2、增加代理推广报告查询注册UUID账户
This commit is contained in:
		| @@ -0,0 +1,56 @@ | ||||
| package middleware | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"net/http" | ||||
|  | ||||
| 	"tydata-server/app/user/cmd/api/internal/config" | ||||
| 	"tydata-server/common/ctxdata" | ||||
| 	jwtx "tydata-server/common/jwt" | ||||
| 	"tydata-server/common/xerr" | ||||
|  | ||||
| 	"github.com/pkg/errors" | ||||
| 	"github.com/zeromicro/go-zero/rest/httpx" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	// 定义错误码 | ||||
| 	ErrCodeUnauthorized = 401 | ||||
| ) | ||||
|  | ||||
| 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") | ||||
|  | ||||
| 		// 如果没有Authorization头,直接放行 | ||||
| 		if authHeader == "" { | ||||
| 			next(w, r) | ||||
| 			return | ||||
| 		} | ||||
|  | ||||
| 		// 解析JWT令牌 | ||||
| 		userId, err := jwtx.ParseJwtToken(authHeader, m.Config.JwtAuth.AccessSecret) | ||||
| 		if err != nil { | ||||
| 			// JWT解析失败,返回401错误 | ||||
| 			httpx.Error(w, errors.Wrapf(xerr.NewErrCode(ErrCodeUnauthorized), "token解析失败: %v", err)) | ||||
| 			return | ||||
| 		} | ||||
|  | ||||
| 		// 将用户ID添加到请求上下文 | ||||
| 		ctx := context.WithValue(r.Context(), ctxdata.CtxKeyJwtUserId, userId) | ||||
|  | ||||
| 		// 使用新的上下文继续处理请求 | ||||
| 		next(w, r.WithContext(ctx)) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user