- 删除注册、登录、找回密码、游客登录接口及密码、token 相关代码 - 鉴权中间件不再校验 token,按 X-User-Agent 中的 devID 识别用户,首次访问自动创建,Redis 缓存 10 分钟 - 渠道码改从请求头 channel 读取;修改资料不再支持改密码 - 同步更新 swagger 文档 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
85 lines
2.6 KiB
Go
85 lines
2.6 KiB
Go
package authapi
|
|
|
|
import (
|
|
"videoweb/app/service/authser"
|
|
"videoweb/pub/common"
|
|
"videoweb/pub/common/srvdef"
|
|
"videoweb/pub/common/useragent"
|
|
"videoweb/pub/pubdef"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func requestUA(ctx *gin.Context) useragent.UA {
|
|
ua, _ := common.GetUA(ctx)
|
|
return ua
|
|
}
|
|
|
|
type updateProfileReq struct {
|
|
NickName *string `json:"nickName"` // 新昵称(可选)
|
|
Avatar *string `json:"avatar"` // 新头像 URL(可选)
|
|
Introduction *string `json:"introduction"` // 简介(可选)
|
|
PrivacyMode *bool `json:"privacyMode"` // 隐私模式:true-开启,false-关闭(可选)
|
|
}
|
|
|
|
// UpdateProfile 修改用户资料
|
|
// @Tags 用户认证
|
|
// @Summary 修改用户资料(昵称 / 头像 / 简介 / 隐私模式,可任意组合)
|
|
// @Description 按请求头 X-User-Agent 中的 devID 识别用户;nickName、avatar、introduction、privacyMode 均为可选,至少提供一项。
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param param body updateProfileReq true "修改资料参数"
|
|
// @Success 200 {string} string "成功"
|
|
// @Failure 400 {string} string "失败"
|
|
// @Router /api/app/auth/profile [POST]
|
|
func UpdateProfile(ctx *gin.Context) {
|
|
userId := common.GetUserId(ctx)
|
|
if userId <= 0 {
|
|
common.ServerJSON(ctx, srvdef.InvalidToken, nil)
|
|
return
|
|
}
|
|
var req updateProfileReq
|
|
if err := ctx.ShouldBind(&req); err != nil {
|
|
common.ServerJSON(ctx, srvdef.ErrParamError, nil)
|
|
return
|
|
}
|
|
serr := authser.UpdateProfile(ctx, &authser.UpdateProfileReq{
|
|
UserId: userId,
|
|
NickName: req.NickName,
|
|
Avatar: req.Avatar,
|
|
Introduction: req.Introduction,
|
|
PrivacyMode: req.PrivacyMode,
|
|
})
|
|
if serr != nil {
|
|
common.ServerJSON(ctx, serr.Code, serr.Tips)
|
|
return
|
|
}
|
|
common.ServerJSON(ctx, srvdef.Success, "")
|
|
}
|
|
|
|
// GetInfo 获取当前用户信息
|
|
// @Tags 用户认证
|
|
// @Summary 获取当前用户信息
|
|
// @Description 按请求头 X-User-Agent 中的 devID 识别用户,返回最新用户信息,包含金币余额、VIP状态等
|
|
// @Produce json
|
|
// @Success 200 {object} authser.LoginResp "用户信息"
|
|
// @Failure 400 {string} string "失败"
|
|
// @Router /api/app/auth/getInfo [GET]
|
|
func GetInfo(ctx *gin.Context) {
|
|
userId := common.GetUserId(ctx)
|
|
if pubdef.IsCrawlerUser(userId) {
|
|
common.ServerJSON(ctx, srvdef.Success, authser.CrawlerLoginResp())
|
|
return
|
|
}
|
|
if userId <= 0 {
|
|
common.ServerJSON(ctx, srvdef.InvalidToken, nil)
|
|
return
|
|
}
|
|
resp, serr := authser.GetInfo(ctx, userId, requestUA(ctx))
|
|
if serr != nil {
|
|
common.ServerJSON(ctx, serr.Code, serr.Tips)
|
|
return
|
|
}
|
|
common.ServerJSON(ctx, srvdef.Success, resp)
|
|
}
|