按意图重做在 huakui 代码底: - 删除数据埋点逻辑:移除 pub/dataReport、reportser、srv_report、 eventmod、上报定时任务及注册/登录/点赞/收藏/评论/解锁/订单处的 上报调用和 reportSdkConfig 配置下发 - app 认证改为按设备ID识别用户:去掉 token 校验、Register/Login/ ResetPassword/GuestLogin 接口,新增 ResolveDeviceUser 和设备缓存 - 广告改为按 AppId 从媒资中心拉取:pub/storage 新增 QueryAdvitise, UpdateAdvitiseData 替代 UpdateAdvitiseDataFromJt - 后台登录取消谷歌二次验证,密码正确即登录 - 短剧/专题 slug 改为 10 位大小写字母+数字混合 - 本地 app.yaml/web.yaml 保留 HKDJNET_* 模板(不提交生产凭据) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package auth
|
|
|
|
import (
|
|
"net/http"
|
|
"strings"
|
|
"hkdj-web-server/app/middleware/reptilerecord"
|
|
"hkdj-web-server/app/service/authser"
|
|
"hkdj-web-server/pub/common"
|
|
"hkdj-web-server/pub/common/enum/consts"
|
|
"hkdj-web-server/pub/common/ipaddr"
|
|
"hkdj-web-server/pub/common/log"
|
|
"hkdj-web-server/pub/common/srvdef"
|
|
"hkdj-web-server/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)
|
|
}
|