Files
tyc-server-v2/app/main/api/internal/handler/user/wxh5authhandler.go

41 lines
1.2 KiB
Go
Raw Normal View History

2026-01-22 16:04:12 +08:00
package user
import (
2026-05-11 20:21:56 +08:00
"context"
2026-01-22 16:04:12 +08:00
"net/http"
2026-05-11 20:21:56 +08:00
"strings"
2026-01-22 16:04:12 +08:00
"tyc-server/app/main/api/internal/logic/user"
"tyc-server/app/main/api/internal/svc"
"tyc-server/app/main/api/internal/types"
2026-05-11 20:21:56 +08:00
jwtx "tyc-server/common/jwt"
2026-01-22 16:04:12 +08:00
"tyc-server/common/result"
"tyc-server/pkg/lzkit/validator"
"github.com/zeromicro/go-zero/rest/httpx"
)
func WxH5AuthHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.WXH5AuthReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
if err := validator.Validate(req); err != nil {
result.ParamValidateErrorResult(r, w, err)
return
}
2026-05-11 20:21:56 +08:00
ctx := r.Context()
// 本路由未挂 AuthInterceptor若前端已带登录态如手机号登录后再走静默授权需解析 JWT 以便把 openid 写入当前正式用户 user_auth
if authHeader := strings.TrimSpace(r.Header.Get("Authorization")); authHeader != "" {
if claims, err := jwtx.ParseJwtToken(authHeader, svcCtx.Config.JwtAuth.AccessSecret); err == nil {
ctx = context.WithValue(ctx, jwtx.ExtraKey, claims)
}
}
l := user.NewWxH5AuthLogic(ctx, svcCtx)
2026-01-22 16:04:12 +08:00
resp, err := l.WxH5Auth(&req)
result.HttpResult(r, w, resp, err)
}
}