20260622214432
This commit is contained in:
1 parent
b5f6fafd74
commit
e9e3371be7
19 files changed
+1068
-121
No files matched your search
@@ -59,6 +59,84 @@ func LoginWechat(c fiber.Ctx) error {
|
||||
return handleThirdLogin(c, openid, nickname, avatar, 0, vo)
|
||||
}
|
||||
|
||||
// LoginTest ======================== 测试登录 ========================
|
||||
func LoginTest(c fiber.Ctx) error {
|
||||
var req types.LoginTestReq
|
||||
vo := new(types.LoginResp)
|
||||
|
||||
if err := httpx.BindAndValidate(c, &req); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
dbClient := db.New()
|
||||
|
||||
// 检查用户是否存在
|
||||
users, err := dbClient.LoadData(
|
||||
c.Context(),
|
||||
"b_user",
|
||||
"id = ?",
|
||||
"",
|
||||
[]string{"id", "nickname", "avatar"},
|
||||
[]any{req.UserId},
|
||||
)
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
if len(users) == 0 {
|
||||
return httpx.Fail(c, "测试用户不存在")
|
||||
}
|
||||
|
||||
user := users[0]
|
||||
|
||||
// 更新登录时间
|
||||
if err := dbClient.Update(
|
||||
c.Context(),
|
||||
"b_user",
|
||||
"id",
|
||||
map[string]any{
|
||||
"id": req.UserId,
|
||||
"last_login_time": "NOW()",
|
||||
},
|
||||
); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
// 查 family
|
||||
familyMembers, err := dbClient.LoadData(
|
||||
c.Context(),
|
||||
"b_family_member",
|
||||
"user_id = ?",
|
||||
"",
|
||||
[]string{"family_id"},
|
||||
[]any{req.UserId},
|
||||
)
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
if len(familyMembers) == 0 {
|
||||
vo.FamilyId = 0
|
||||
} else {
|
||||
vo.FamilyId = toInt64(familyMembers[0]["family_id"])
|
||||
}
|
||||
|
||||
// 生成 JWT
|
||||
token, err := jwtx.CreateToken(c.Context(), jwtx.TokenData{
|
||||
UserID: req.UserId,
|
||||
})
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
vo.Token = token
|
||||
vo.UserId = req.UserId
|
||||
vo.Nickname, _ = user["nickname"].(string)
|
||||
vo.Avatar, _ = user["avatar"].(string)
|
||||
|
||||
return httpx.OK(c, vo)
|
||||
}
|
||||
|
||||
// ======================== 第三方登录主流程 ========================
|
||||
func handleThirdLogin(
|
||||
c fiber.Ctx,
|
||||
|
||||
Reference in new issue
Block a user