feat: update

This commit is contained in:
yanghao05
2025-04-30 13:59:39 +08:00
parent 91dcc60588
commit 070bec536b
12 changed files with 104 additions and 35 deletions

View File

@@ -12,7 +12,6 @@ import (
"quyun/providers/jwt"
"quyun/providers/wechat"
"github.com/go-jet/jet/v2/qrm"
"github.com/gofiber/fiber/v3"
gonanoid "github.com/matoous/go-nanoid/v2"
"github.com/pkg/errors"
@@ -51,24 +50,31 @@ func (ctl *auth) Login(ctx fiber.Ctx, code, state, redirect string) error {
log.Debugf("Auth User Info: %+v", authUserInfo)
user, err := models.Users.GetUserByOpenID(ctx.Context(), token.Openid)
userModel := &model.Users{
Status: fields.UserStatusOk,
OpenID: token.GetOpenID(),
Username: fmt.Sprintf("u_%s", gonanoid.MustGenerate(salt, 8)),
Avatar: nil,
Metas: fields.ToJson(fields.UserMetas{
City: authUserInfo.City,
Country: authUserInfo.Country,
HeadImageUrl: authUserInfo.Headimgurl,
Nickname: authUserInfo.Nickname,
Privilege: authUserInfo.Privilege,
Province: authUserInfo.Province,
Sex: authUserInfo.Sex,
}),
AuthToken: fields.ToJson(fields.UserAuthToken{
AccessToken: token.AccessToken,
ExpiresAt: time.Now().Add(time.Second * time.Duration(token.ExpiresIn)),
IsSnapshotuser: token.IsSnapshotuser,
RefreshToken: token.RefreshToken,
Scope: token.Scope,
}),
}
user, err := models.Users.GetUserByOpenIDOrCreate(ctx.Context(), token.Openid, userModel)
if err != nil {
if errors.Is(err, qrm.ErrNoRows) {
// Create User
model := &model.Users{
Status: fields.UserStatusOk,
OpenID: token.GetOpenID(),
Username: fmt.Sprintf("u_%s", gonanoid.MustGenerate(salt, 8)),
Avatar: nil,
}
user, err = models.Users.Create(ctx.Context(), model)
if err != nil {
return errors.Wrap(err, "failed to create user")
}
} else {
return errors.Wrap(err, "failed to get user")
}
return errors.Wrap(err, "failed to get user by openid")
}
jwtToken, err := ctl.jwt.CreateToken(ctl.jwt.CreateClaims(jwt.BaseClaims{UserID: user.ID}))