1 Star 0 Fork 0

liuxuezhan / mylib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
C_Login.go 3.07 KB
一键复制 编辑 原始数据 按行查看 历史
liuxuezhan 提交于 2020-12-19 16:35 . 'ok'
package app
import (
"fmt"
"gitee.com/liuxuezhan/mylib/Protocol"
"gitee.com/liuxuezhan/mylib/conf/ConfigServer"
"gitee.com/liuxuezhan/mylib/rsa-go"
"time"
)
func C_Login(message MPB.Message, ctx interface{}) {
// !Note: in net-thread
req := message.(*MPB.C_Login)
sess := ctx.(*Session)
go func() {
// 开始认证
if !sess.BeginAuth() {
sess.SendMsg(&MPB.GW_Login_R{
ErrorCode: MPB.RetType_Login_Failed,
})
return
}
// 认证
ec := MPB.RetType_OK
func() {
// 检查版本号
if req.VerMajor != ConfigServer.GetConf("Common", "Ver_Major") || req.VerMinor != ConfigServer.GetConf("Common", "Ver_Minor") {
ec = MPB.RetType_Login_InvalidVersion
return
}
// 参数检查
if req.AuthId == "" {
ec = MPB.RetType_Login_Failed
return
}
//// http 请求
//webret := core.HttpPost(
// fmt.Sprintf(
// "http://%s:%d/api/auth?token=%s",
// config.Auth.IP,
// config.Auth.Port,
// config.Auth.Token,
// ),
// url.Values{
// "auth_id": {req.AuthId},
// "auth_token": {req.AuthToken},
// "sdk": {req.Sdk},
// "plat": {req.Plat},
// "ip": {sess.GetIP()},
// "p1": {req.P1},
// "p2": {req.P2},
// "p3": {req.P3},
// },
//)
//
//// checkout ret-values
//retobj := make(map[string]string)
//err := json.Unmarshal([]byte(webret), &retobj)
//if err != nil {
// ec = Err.Login_Failed
// return
//}
//
//ret_err := retobj["err"]
//ret_authid := retobj["authid"]
//ret_ext := retobj["ext"]
//
//// check ret-err
//if ret_err == "ip-policy" {
// ec = Err.Login_IpPolicy
// return
//} else if ret_err != "" {
// ec = Err.Login_Failed
// return
//}
//
//// set ret-authid
//if ret_authid != "" {
// req.AuthId = ret_authid
//}
// 查找玩家信息
user, limit := Center_GetUserInfo(req.AuthId, req.Sdk, req.Svr0, func(newinfo *UserInfo) {
newinfo.Plat = req.Plat
newinfo.DevId = req.DevId
newinfo.IP = sess.GetIP()
})
// 达到注册上限
if limit {
ec = MPB.RetType_Login_UserLimit
return
}
if user == nil {
ec = MPB.RetType_Login_Failed
return
}
// 检查是否封号
if user.BanTs.After(time.Now()) {
ec = MPB.RetType_Login_UserBanned
return
}
// first -> 返回认证结果
sess.SendMsg(&MPB.GW_Login_R{
ErrorCode: MPB.RetType_OK,
AuthId: req.AuthId,
//Ext: ret_ext,
SessionKey: int64(sess.GetId()),
SessionToken: rsa_go.GetMd5Hash(fmt.Sprintf("%d%s%s", sess.GetId(), user.UserId, ConfigServer.GetConf("auth", "token"))),
})
// then -> login player: 通知到 GS
sess.LoginPlayer(&MPB.GW_UserOnline{
Sid: sess.GetId(),
UserId: user.UserId,
AuthId: user.AuthId,
Svr0: user.Svr0,
Sdk: user.Sdk,
Plat: user.Plat,
DevId: req.DevId,
LoginIP: sess.GetIP(),
})
}()
if ec != MPB.RetType_OK {
sess.SetForceRemove()
sess.SendMsg(&MPB.GW_Login_R{
ErrorCode: ec,
})
}
// 结束认证
sess.EndAuth()
}()
}
1
https://gitee.com/liuxuezhan/mylib.git
git@gitee.com:liuxuezhan/mylib.git
liuxuezhan
mylib
mylib
v1.1.0

搜索帮助