From d6600c0e08eb6ff045bc2e4b87c67d153c7b2ef9 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 12 Dec 2024 14:41:09 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E4=BC=91=E9=97=B2=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BF=AE=E6=94=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 731b9857c1fe4b6d63a7ba68e08ee9c16f27dea0. --- common/constant.go | 2 -- protocol/login/login.proto | 2 +- worldsrv/action_login.go | 51 ++++++++++--------------------------- worldsrv/task_login.go | 22 ++++++++-------- worldsrv/trascate_webapi.go | 3 +-- 5 files changed, 25 insertions(+), 55 deletions(-) diff --git a/common/constant.go b/common/constant.go index caa9e4b..f248e24 100644 --- a/common/constant.go +++ b/common/constant.go @@ -328,8 +328,6 @@ const ( GainWayGuide2 = 117 // 竞技馆引导奖励 GainWayCompound = 118 // 道具合成消耗 GainWayCompoundGain = 119 // 道具合成获得 - GainWayPlatformIn = 120 // 平台上分 - GainWayPlatformOut = 121 // 平台下分 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/protocol/login/login.proto b/protocol/login/login.proto index adbe38a..9f6612d 100644 --- a/protocol/login/login.proto +++ b/protocol/login/login.proto @@ -64,7 +64,7 @@ message CSLogin { int32 InviterId = 8; //邀请人ID int32 ApkVer = 9; //apk版本号 int32 ResVer = 10; //资源版本号 - int32 LoginType = 11; //登录类型 0:游客登录 1:帐号登录 2:手机号登录 6:谷歌,facebook 7: 平台token登录 + int32 LoginType = 11; //登录类型 0:游客登录 1:帐号登录 2:手机号登录 6:谷歌,facebook string PlatformTag = 12;//android包名或者ios标记 string DeviceOs = 13; //系统android,ios,windows string Promoter = 14; //推广员 diff --git a/worldsrv/action_login.go b/worldsrv/action_login.go index 1b65558..883428a 100644 --- a/worldsrv/action_login.go +++ b/worldsrv/action_login.go @@ -4,9 +4,7 @@ import ( "crypto/md5" "encoding/hex" "fmt" - "github.com/golang-jwt/jwt/v4" "io" - "mongo.games.com/game/webapi" "strconv" "time" @@ -74,19 +72,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf s.Send(int(login_proto.GatePacketID_PACKET_SS_DICONNECT), ssDis) } - claims, err := webapi.ParseJwtWithClaims([]byte(common.Config.AppId), csl.Token) - if err != nil { - return nil - } - - logger.Logger.Tracef("(this *CSLoginHandler) Process ParseJwtWithClaims: claims:%v", claims.(jwt.MapClaims)) - - username := (claims.(jwt.MapClaims))["Username"].(string) - if csl.GetLoginType() == common.LoginTypePlatformToken { - csl.Username = username - } - - if (csl.GetUsername() == "" || csl.GetPassword() == "") && csl.GetLoginType() != common.LoginTypePlatformToken { + if csl.GetUsername() == "" || csl.GetPassword() == "" { sendSCLogin(login_proto.OpResultCode_OPRC_Error) sendSCDisconnect(common.KickReason_Freeze) return nil @@ -137,7 +123,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf h := md5.New() io.WriteString(h, raw) hashsum := hex.EncodeToString(h.Sum(nil)) - if hashsum != csl.GetSign() && csl.GetLoginType() != common.LoginTypePlatformToken { + if hashsum != csl.GetSign() { logger.Logger.Tracef("ClientSessionAttribute_State hashsum not fit!!! get:%v expect:%v rawstr:%v", csl.GetSign(), hashsum, raw) sendSCLogin(login_proto.OpResultCode_OPRC_Error) sendSCDisconnect(common.KickReason_CheckCodeErr) @@ -214,17 +200,17 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } // 玩家是否有在登录的连接 - if LoginStateMgrSington.IsLogining(username, csl.GetPlatform(), tagkey) { + if LoginStateMgrSington.IsLogining(csl.GetUsername(), csl.GetPlatform(), tagkey) { logger.Logger.Warnf("CSLoginHandler logining (%v) disconnect current(%v) ", csl.GetUsername(), sid) sendSCDisconnect(common.KickReason_Logining) // 登录中重复登录会被断开连接 return nil } // 玩家已经登录完成并且在游戏中,断开当前连接 - ls := LoginStateMgrSington.GetLoginStateByName(UserKey(username, csl.GetPlatform(), tagkey)) + ls := LoginStateMgrSington.GetLoginStateByName(UserKey(csl.GetUsername(), csl.GetPlatform(), tagkey)) if ls != nil && ls.acc != nil { // lss 其它连接 - lss := LoginStateMgrSington.LoginFinish(username, csl.GetPlatform(), sid, ls.acc, tagkey) + lss := LoginStateMgrSington.LoginFinish(csl.GetUsername(), csl.GetPlatform(), sid, ls.acc, tagkey) player := PlayerMgrSington.GetPlayerBySnId(ls.acc.SnId) waitMatch := false if player != nil { @@ -243,7 +229,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf ResVer: csl.GetResVer(), InviterId: csl.GetInviterId(), PromoterTree: csl.GetPromoterTree(), - UserName: username, + UserName: csl.GetUsername(), PlatformTag: csl.GetPlatformTag(), Promoter: csl.GetPromoter(), Sid: sid, @@ -252,7 +238,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } // 玩家开始登录 - if LoginStateMgrSington.StartLogin(username, csl.GetPlatform(), sid, s, clog, tagkey) { + if LoginStateMgrSington.StartLogin(csl.GetUsername(), csl.GetPlatform(), sid, s, clog, tagkey) { tl := &TaskLogin{CSLogin: csl, Session: s, Sid: sid, BackupPromoter: backupPromoter, tagkey: tagkey, codeValid: codeValid} t := task.New(nil, tl, tl, "TaskLogin") if b := t.StartByExecutor(csl.GetUsername()); !b { @@ -264,7 +250,8 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf // 用缓存信息做登录,有account // 根据StartLogin代码,这里ls.acc一定不为nil - ls = LoginStateMgrSington.GetLoginStateByName(UserKey(username, csl.GetPlatform(), tagkey)) + // 验证token + ls = LoginStateMgrSington.GetLoginStateByName(UserKey(csl.GetUsername(), csl.GetPlatform(), tagkey)) if ls != nil { acc := ls.acc // 账号冻结 @@ -279,7 +266,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf pwdIsErr := true switch csl.GetLoginType() { case common.LoginTypeGuest: //游客登录 - if acc.UserName == username && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { + if acc.UserName == csl.GetUsername() && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { raw := fmt.Sprintf("%v%v%v", acc.PassWord, common.GetAppId(), csl.GetTimeStamp()) h := md5.New() io.WriteString(h, raw) @@ -291,7 +278,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } } case common.LoginTypeAccount: //帐号登录 - if acc.UserName == username && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { + if acc.UserName == csl.GetUsername() && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { // 用户密码 userPwd := common.GetRawPassword(acc.TelPassWord, csl.GetTimeStamp()) if userPwd != csl.GetPassword() { @@ -307,7 +294,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } } case common.LoginTypeTelCode: // 手机验证码登录 - if acc.Tel == username && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { + if acc.Tel == csl.GetUsername() && acc.Platform == csl.GetPlatform() && acc.TagKey == tagkey { if codeValid { // 更新密码 raw := fmt.Sprintf("%v%v", bson.NewObjectId().Hex(), common.GetAppId()) @@ -338,18 +325,6 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf } } } - case common.LoginTypePlatformToken: - // 验证token - pwdIsErr = true - - //expire := (claims.(jwt.MapClaims))["Exp"].(int64) - ////timeStamp := (claims.(jwt.MapClaims))["Timestamp"] - // - //if username == username && expire <= time.Now().Add(time.Hour*24).Unix() { - // pwdIsErr = true - //} else { - // pwdIsErr = false - //} } //密码错误 @@ -374,7 +349,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf SCLogin(s, sid, csl, acc, login_proto.OpResultCode_OPRC_Sucess, false) // 标记当前玩家登录成功,断开其它连接 - lss := LoginStateMgrSington.LoginFinish(username, csl.GetPlatform(), sid, acc, tagkey) + lss := LoginStateMgrSington.LoginFinish(csl.GetUsername(), csl.GetPlatform(), sid, acc, tagkey) if len(lss) != 0 { for k, ls := range lss { ssDis := &login_proto.SSDisconnect{ diff --git a/worldsrv/task_login.go b/worldsrv/task_login.go index 0d6a8d4..d5cf8eb 100644 --- a/worldsrv/task_login.go +++ b/worldsrv/task_login.go @@ -4,9 +4,7 @@ import ( "crypto/md5" "encoding/hex" "fmt" - "github.com/golang-jwt/jwt/v4" "io" - "mongo.games.com/game/webapi" "strconv" "strings" "time" @@ -41,20 +39,20 @@ type TaskLogin struct { func (t *TaskLogin) Call(o *basic.Object) interface{} { var playerData *model.PlayerData - //token验证 - claims, err := webapi.ParseJwtWithClaims([]byte(common.Config.AppId), t.Token) - if err != nil { - return nil - } + // token验证 + //claims, err := webapi.ParseJwtWithClaims([]byte(common.Config.AppId), t.Token) + //if err != nil { + // return nil + //} + // + //logger.Logger.Tracef("TaskLogin ParseJwtWithClaims: claims:%v", claims.(jwt.MapClaims)) - logger.Logger.Tracef("TaskLogin ParseJwtWithClaims: claims:%v", claims.(jwt.MapClaims)) - - username := (claims.(jwt.MapClaims))["Username"].(string) + //username := (claims.(jwt.MapClaims))["Username"] //expire := (claims.(jwt.MapClaims))["Exp"] //timeStamp := (claims.(jwt.MapClaims))["Timestamp"] - acc, retCode := model.AccountIsExist(username, username, t.GetPassword(), t.GetPlatform(), - t.GetTimeStamp(), common.LoginTypePlatformToken, t.tagkey, false, t.codeValid) + acc, retCode := model.AccountIsExist(t.GetUsername(), t.GetUsername(), t.GetPassword(), t.GetPlatform(), + t.GetTimeStamp(), t.GetLoginType(), t.tagkey, false, t.codeValid) switch retCode { case common.LoginOk: diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 965861e..7e54b5a 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2910,8 +2910,7 @@ func init() { return common.ResponseTag_ParamError, jsonDataRsp } - pack.Data.Url = fmt.Sprintf("%s?login_token=%s", model.GameParamData.PlatformClientAddr, tokenStr) - logger.Logger.Tracef("/api/platform/createUser pack.Data.Url : %v", pack.Data.Url) + pack.Data.Url = fmt.Sprintf("%s?access_token=%s", model.GameParamData.PlatformClientAddr, tokenStr) task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { acc, retCode := model.AccountIsExist(AccountInfo.Username, "", "", "1", AccountInfo.Timestamp,