// Code generated by hertz generator. package auth import ( "cn/oneao/base-go/db" "cn/oneao/base-go/db/repo" "cn/oneao/base-go/logx" "cn/oneao/base-go/utils/jwtx" "cn/oneao/base-go/utils/response" "context" "cn/oneao/base-go/biz/model/auth" "github.com/cloudwego/hertz/pkg/app" "github.com/cloudwego/hertz/pkg/protocol/consts" ) // LoginDefault . // @router /auth/login/default [POST] func LoginDefault(ctx context.Context, c *app.RequestContext) { var err error var req auth.LoginDefaultReq err = c.BindAndValidate(&req) if err != nil { c.String(consts.StatusBadRequest, err.Error()) return } // 登录 account := req.Account password := req.Password params := repo.GetUserForLoginParams{ Account: account, Password: password, } loginUser, err := db.Queries.GetUserForLogin(ctx, params) if err != nil { response.Fail(c).Message("账号或密码错误!").Send() return } // 异步更新登录事件 go func(userID int64) { err = db.Queries.UpdateUserLoginLastTime(ctx, userID) if err != nil { logx.CtxError(ctx, "更新用户登录时间失败,UserID=%d, err=%v", loginUser.ID, err) } }(loginUser.ID) // 包装数据 token, err := jwtx.CreateAccessToken(loginUser.ID) refreshToken, err := jwtx.CreateRefreshToken(loginUser.ID) resp := new(auth.LoginDefaultResp) resp.Token = token resp.RefreshToken = refreshToken resp.UserId = loginUser.ID resp.Gender = loginUser.Gender.Int32 resp.SeqNo = loginUser.SeqNo.Int32 resp.Username = loginUser.Username.String response.Success(c).Data(resp).Send() }