固定值顺序数据key
This commit is contained in:
@@ -80,7 +80,7 @@ func (wm *ChannelManager) LoginSuccess(UID, name, tp string) error {
|
||||
//判断是否重复登录
|
||||
for _, v := range wm.User {
|
||||
if v.UserName == name && v.AlarmType == tp && v.LoginState {
|
||||
return errors.New("repeat login for the same account")
|
||||
return errors.New("repeat login for the account")
|
||||
}
|
||||
}
|
||||
user, ok := wm.User[UID]
|
||||
|
||||
@@ -106,9 +106,12 @@ func Decode(data []byte, body *model.Body) error {
|
||||
func Pack(name string, data map[string]string) []byte {
|
||||
var multi []string
|
||||
multi = append(multi, name)
|
||||
for i, v := range data {
|
||||
item := fmt.Sprintf("%s=%s", i, v)
|
||||
multi = append(multi, item)
|
||||
// 固定值顺序
|
||||
keys := []string{"seqNo", "result", "reqId", "resDesc"}
|
||||
for _, key := range keys {
|
||||
if v, ok := data[key]; ok {
|
||||
multi = append(multi, fmt.Sprintf("%s=%s", key, v))
|
||||
}
|
||||
}
|
||||
raw := strings.Join(multi, ";")
|
||||
return []byte(raw)
|
||||
|
||||
@@ -15,8 +15,8 @@ func Result(name string, data map[string]string) []byte {
|
||||
func ResultError(name string, desc, reqID string) []byte {
|
||||
data := map[string]string{
|
||||
"result": "fail",
|
||||
"resDesc": desc,
|
||||
"reqId": reqID,
|
||||
"resDesc": desc,
|
||||
}
|
||||
|
||||
return Result(name, data)
|
||||
@@ -26,8 +26,8 @@ func ResultError(name string, desc, reqID string) []byte {
|
||||
func ResultSuccess(name string, desc, reqID string) []byte {
|
||||
data := map[string]string{
|
||||
"result": "succ",
|
||||
"resDesc": desc,
|
||||
"reqId": reqID,
|
||||
"resDesc": desc,
|
||||
}
|
||||
|
||||
return Result(name, data)
|
||||
|
||||
@@ -54,7 +54,7 @@ func (*ReqCMCALoginAlarm) Handle(request ziface.IRequest) {
|
||||
zlog.Ins().ErrorF("LoginFail %s", err)
|
||||
request.GetConnection().SendMsg(ReqLoginAlarmMsgType, core.Result(ReqLoginAlarmMsgName, map[string]string{
|
||||
"result": "autherror",
|
||||
"resDesc": err.Error()[:30],
|
||||
"resDesc": err.Error(),
|
||||
}))
|
||||
// 已登录的,登录错误超过3次,断开连接
|
||||
if uid != nil || uid != "" {
|
||||
@@ -73,7 +73,7 @@ func (*ReqCMCALoginAlarm) Handle(request ziface.IRequest) {
|
||||
zlog.Ins().ErrorF("manager:%s", err)
|
||||
request.GetConnection().SendMsg(ReqLoginAlarmMsgType, core.Result(ReqLoginAlarmMsgName, map[string]string{
|
||||
"result": "autherror",
|
||||
"resDesc": err.Error()[:30],
|
||||
"resDesc": err.Error(),
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ func (s *ReqLoginAlarm) Handle(request ziface.IRequest) {
|
||||
zlog.Ins().ErrorF("LoginFail %s", err)
|
||||
request.GetConnection().SendMsg(ReqLoginAlarmMsgType, core.Result(ReqLoginAlarmMsgName, map[string]string{
|
||||
"result": "autherror",
|
||||
"resDesc": err.Error()[:30],
|
||||
"resDesc": err.Error(),
|
||||
}))
|
||||
// 已登录的,登录错误超过3次,断开连接
|
||||
if uid != nil || uid != "" {
|
||||
@@ -73,7 +73,7 @@ func (s *ReqLoginAlarm) Handle(request ziface.IRequest) {
|
||||
zlog.Ins().ErrorF("manager:%s", err)
|
||||
request.GetConnection().SendMsg(ReqLoginAlarmMsgType, core.Result(ReqLoginAlarmMsgName, map[string]string{
|
||||
"result": "autherror",
|
||||
"resDesc": err.Error()[:30],
|
||||
"resDesc": err.Error(),
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@ func UserLogin(name, passwd string) error {
|
||||
var user model.User
|
||||
err := db.Client.Model(&model.User{}).Where("account_id=?", name).First(&user).Error
|
||||
if err != nil {
|
||||
return err
|
||||
zlog.Ins().ErrorF("Password Login[%s]:%s", name, err)
|
||||
return errors.New("incorrect username and password")
|
||||
}
|
||||
|
||||
if err := utils.Compare(user.Password, passwd); err != nil {
|
||||
@@ -35,7 +36,8 @@ func CMCALogin(name, publicKeyStr, content, signatureBase64 string) error {
|
||||
var user model.User
|
||||
err := db.Client.Model(&model.User{}).Where("account_id=?", name).First(&user).Error
|
||||
if err != nil {
|
||||
return err
|
||||
zlog.Ins().ErrorF("Password Login[%s]:%s", name, err)
|
||||
return errors.New("无效用户名")
|
||||
}
|
||||
|
||||
if user.AccountId != name {
|
||||
@@ -48,13 +50,15 @@ func CMCALogin(name, publicKeyStr, content, signatureBase64 string) error {
|
||||
// 解析公钥
|
||||
publicKey, err := utils.ParsePKCS1PublicKey(publicKeyPEM)
|
||||
if err != nil {
|
||||
return fmt.Errorf("解析公钥失败 %s", err)
|
||||
zlog.Ins().ErrorF("publicKeyPEM Login[%s]:%s", name, err)
|
||||
return fmt.Errorf("解析公钥失败")
|
||||
}
|
||||
|
||||
// 解码base64得到签名字节串
|
||||
signature, err := base64.StdEncoding.DecodeString(signatureBase64)
|
||||
if err != nil {
|
||||
return fmt.Errorf("解码签名数据失败 %s", err)
|
||||
zlog.Ins().ErrorF("signatureBase64 Login[%s]:%s", name, err)
|
||||
return fmt.Errorf("解码签名数据失败")
|
||||
}
|
||||
|
||||
// 验证签名
|
||||
|
||||
Reference in New Issue
Block a user