Selaa lähdekoodia

fix: NewTokenParser

2637309949 4 vuotta sitten
vanhempi
commit
2c32168e3c
2 muutettua tiedostoa jossa 17 lisäystä ja 6 poistoa
  1. 6 4
      internal/handler/getuserhandler.go
  2. 11 2
      internal/logic/loginbyweixinlogic.go

+ 6 - 4
internal/handler/getuserhandler.go

@@ -1,14 +1,15 @@
 package handler
 
 import (
-	"fmt"
 	"net/http"
 	"time"
 
 	"git.i2edu.net/i2/i2-bill-api/internal/logic"
 	"git.i2edu.net/i2/i2-bill-api/internal/svc"
 	"git.i2edu.net/i2/i2-bill-api/internal/types"
+	"github.com/dgrijalva/jwt-go"
 
+	"git.i2edu.net/i2/go-zero/core/logx"
 	"git.i2edu.net/i2/go-zero/rest/httpx"
 	"git.i2edu.net/i2/go-zero/rest/token"
 )
@@ -17,14 +18,15 @@ func GetUserHandler(ctx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
 		var req types.Request
 		if err := httpx.Parse(r, &req); err != nil {
-			httpx.Error(w, err)
+			httpx.OkJson(w, err)
 			return
 		}
 		token.NewTokenParser()
 		parser := token.NewTokenParser(token.WithResetDuration(time.Minute))
 		tok, err := parser.ParseToken(r, ctx.Config.JwtAuth.AccessSecret, "")
-		fmt.Println("tok", tok)
-		fmt.Println("err", err)
+		// user_id
+		logx.Info(tok.Claims.(jwt.MapClaims)["user_id"])
+		logx.Info(err)
 		l := logic.NewGetUserLogic(r.Context(), ctx)
 		resp, err := l.GetUser(req)
 		if err != nil {

+ 11 - 2
internal/logic/loginbyweixinlogic.go

@@ -33,6 +33,7 @@ func (l *LoginByWeixinLogic) LoginByWeixin(req types.AuthLoginBody) (*types.Auth
 	alb, rtnInfo := req, types.AuthResponse{}
 	userInfo, err := l.Login(alb.Code)
 	if err != nil {
+		logx.Error(err)
 		return nil, err
 	}
 	err = l.svcCtx.SqlConn.Transact(func(session sqlx.Session) error {
@@ -48,12 +49,17 @@ func (l *LoginByWeixinLogic) LoginByWeixin(req types.AuthLoginBody) (*types.Auth
 			user.Avatar = userInfo.AvatarUrl
 			user.Gender = userInfo.Gender
 			user.Nickname = userInfo.NickName
-			_, err = session.Exec(fmt.Sprintf("insert into user (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", model.UserRowsExpectAutoSet), user.Mobile, user.Avatar, user.WeixinOpenid, user.Password, user.Birthday, user.RegisterTime, user.LastLoginTime, user.Nickname, user.Username, user.Gender, user.UserLevelId, user.RegisterIp, user.LastLoginIp)
+			_, err = session.Exec(`insert into user (%s) values (
+				mobile, avatar, weixin_openid, password, birthday, register_time, last_login_time, nickname, erp_id, username, gender, user_level_id, register_ip, last_login_ip
+			)`,
+				user.Mobile, user.Avatar, user.WeixinOpenid, user.Password, user.Birthday, user.RegisterTime, user.LastLoginTime, user.Nickname, user.ErpId, user.Username, user.Gender, user.UserLevelId, user.RegisterIp, user.LastLoginIp)
 			if err != nil {
+				logx.Error(err)
 				return err
 			}
 			err = session.QueryRow(&user, fmt.Sprintf("select %s from user where `weixin_openid` = ? limit 1", model.UserRows), userInfo.OpenID)
 			if err != nil {
+				logx.Error(err)
 				return err
 			}
 		}
@@ -68,8 +74,10 @@ func (l *LoginByWeixinLogic) LoginByWeixin(req types.AuthLoginBody) (*types.Auth
 
 		user.LastLoginIp = ""
 		user.LastLoginTime = utils.GetTimestamp()
-		_, err = session.Exec(fmt.Sprintf("update user set %s where `id` = ?", model.UserRowsWithPlaceHolder), user.Mobile, user.Avatar, user.WeixinOpenid, user.Password, user.Birthday, user.RegisterTime, user.LastLoginTime, user.Nickname, user.Username, user.Gender, user.UserLevelId, user.RegisterIp, user.LastLoginIp, user.Id)
+		_, err = session.Exec(`update user set 
+		mobile = ?, avatar = ?, weixin_openid = ?, password = ?, birthday = ?, register_time = ?, last_login_time = ?, nickname = ?, erp_id = ?, username = ?, gender = ?, user_level_id = ?, register_ip = ?, last_login_ip = ? where id = ?`, user.Mobile, user.Avatar, user.WeixinOpenid, user.Password, user.Birthday, user.RegisterTime, user.LastLoginTime, user.Nickname, user.ErpId, user.Username, user.Gender, user.UserLevelId, user.RegisterIp, user.LastLoginIp, user.Id)
 		if err != nil {
+			logx.Error(err)
 			return err
 		}
 		return nil
@@ -84,6 +92,7 @@ func (l *LoginByWeixinLogic) LoginByWeixin(req types.AuthLoginBody) (*types.Auth
 	}
 	accessToken, err := l.CreateJWT(now, l.svcCtx.Config.JwtAuth.AccessSecret, payloads, accessExpire)
 	if err != nil {
+		logx.Error(err)
 		return nil, err
 	}
 	rtnInfo.Token = accessToken