Files
rootandClaude Opus 4.7 eb8840a3af 同步 web_hga 的五项改造
- 移除 买点 (user acquisition tracking) 子系统:dataReport SDK、eventmod
  事件模型、reportdata 定时上报 job、reportser/srv_report 包装层,以及业务
  侧的 ~20 处 Report* 调用点;去掉 proto.ConfigInfo 的 ReportSDKConfig
  字段、DataReport yaml 配置块和 pubdef.TrackerAppId。
- 广告获取改走 versionUrl /api/stat/advitise/v2/get(appId=12),移除
  adcenter(Jt) 调用;新增 POST /api/app/ads/click 异步上报;
  proto.AdvitiseData 别名 proxy.AdvitiseData,AList/BList 改名
  AppInfoAList/AppInfoBList。
- web 后台登录取消谷歌验证码(srv_mwacc.AccLogin 去掉 code 参数),密码
  正确即发放 token。
- app 端取消注册/登录/找回密码/游客登录接口及密码、token 相关代码;鉴权
  中间件按 X-User-Agent 中的 devID 识别用户,首次访问自动建号,Redis 缓存
  10 分钟;修改资料不再支持改密码。
- app m3u8 ticket 校验失败不再降级到 fallback 路径,仍按原 m3u8Name 返回。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-11-07 11:26:52 +08:00

46 lines
1.2 KiB
Go

package auth
import (
"net/http"
"strings"
"videoweb/app/middleware/reptilerecord"
"videoweb/app/service/authser"
"videoweb/pub/common"
"videoweb/pub/common/enum/consts"
"videoweb/pub/common/ipaddr"
"videoweb/pub/common/log"
"videoweb/pub/common/srvdef"
"videoweb/pub/pubdef"
"github.com/gin-gonic/gin"
)
// gin 用户识别中间件:不再校验 token,按 X-User-Agent 中的 devID 识别用户,
// 该设备首次访问时自动创建用户。没有 devID 的请求按匿名处理,
// 需要用户身份的接口自行返回"请先登录"。
func Auth(ctx *gin.Context) {
if reptilerecord.IsBot(ctx) {
ctx.Set(consts.CtxUserID, pubdef.CrawlerUserId)
return
}
ua, err := common.GetUA(ctx)
if err != nil || strings.TrimSpace(ua.DevID) == "" {
return
}
userId, serr := authser.ResolveDeviceUser(ctx, ua, ipaddr.ResolveClientIP(ctx), ctx.GetHeader("channel"))
if serr != nil {
if serr.Code == srvdef.AccountErrAccessForbid {
ctx.AbortWithStatusJSON(http.StatusOK, gin.H{
"code": serr.Code,
"msg": serr.Code.Msg(),
})
return
}
log.Error("Auth:ResolveDeviceUser", log.Any("devID", ua.DevID), log.Any("path", ctx.Request.URL.Path), log.E(serr))
return
}
ctx.Set(consts.CtxUserID, userId)
}