feat: fix issues

This commit is contained in:
Rogee
2025-04-30 15:59:42 +08:00
parent be605ef603
commit af0507d0c1
8 changed files with 60 additions and 21 deletions

View File

@@ -1,7 +1,6 @@
package http
import (
"fmt"
"net/url"
"time"
@@ -13,7 +12,6 @@ import (
"quyun/providers/wechat"
"github.com/gofiber/fiber/v3"
gonanoid "github.com/matoous/go-nanoid/v2"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
)
@@ -43,6 +41,12 @@ func (ctl *auth) Login(ctx fiber.Ctx, code, state, redirect string) error {
}
log.Debugf("tokenInfo %+v", token)
stableToken, err := ctl.wechat.GetStableAccessToken()
if err != nil {
return errors.Wrap(err, "failed to get stable access token")
}
log.Infof("stableToken %+v", stableToken)
authUserInfo, err := ctl.wechat.AuthorizeUserInfo(token.AccessToken, token.Openid)
if err != nil {
return errors.Wrap(err, "failed to get user info")
@@ -51,10 +55,11 @@ func (ctl *auth) Login(ctx fiber.Ctx, code, state, redirect string) error {
log.Debugf("Auth User Info: %+v", authUserInfo)
userModel := &model.Users{
Status: fields.UserStatusOk,
OpenID: token.GetOpenID(),
Username: fmt.Sprintf("u_%s", gonanoid.MustGenerate(salt, 8)),
Avatar: nil,
Status: fields.UserStatusOk,
OpenID: token.GetOpenID(),
// Username: fmt.Sprintf("u_%s", gonanoid.MustGenerate(salt, 8)),
Username: authUserInfo.Nickname,
Avatar: &authUserInfo.Headimgurl,
Metas: fields.ToJson(fields.UserMetas{
City: authUserInfo.City,
Country: authUserInfo.Country,
@@ -65,11 +70,13 @@ func (ctl *auth) Login(ctx fiber.Ctx, code, state, redirect string) error {
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,
StableAccessToken: stableToken.AccessToken,
StableExpiresAt: time.Now().Add(time.Second * time.Duration(stableToken.ExpiresIn)),
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.GetOpenID(), userModel)

View File

@@ -20,7 +20,7 @@ func (f *Middlewares) Auth(ctx fiber.Ctx) error {
return ctx.Next()
}
if f.app.IsDevMode() {
if f.app.IsDevMode() && false {
user, err := models.Users.GetByID(ctx.Context(), 1)
if err != nil {
return ctx.Send([]byte("User not found"))