- 广告获取改走 versionUrl /api/stat/advitise/v2/get(appId=12),移除 adcenter(Jt) 调用;新增 /api/app/ads/click 异步上报点击;proto.AdvitiseData 别名为 proxy.AdvitiseData,AList/BList 字段改名 AppInfoAList/AppInfoBList。 - web 后台登录取消谷歌验证码(srv_mwacc.AccLogin 去掉 code 参数),密码正确即 发放 token。 - app 端取消注册/登录/找回密码/游客登录接口及密码、token 相关代码;鉴权中间件 不再校验 token,按 X-User-Agent 中的 devID 识别用户,首次访问自动建号, Redis 缓存 10 分钟;修改资料不再支持改密码。 - app m3u8 ticket 校验失败不再降级到 fallback 路径,仍按原 m3u8Name 返回。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
46 lines
1.2 KiB
Go
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)
|
|
}
|