48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package api
|
|
|
|
import (
|
|
"omc/core"
|
|
"omc/core/manage"
|
|
"omc/core/utils"
|
|
|
|
"github.com/aceld/zinx/ziface"
|
|
"github.com/aceld/zinx/zlog"
|
|
"github.com/aceld/zinx/znet"
|
|
)
|
|
|
|
var ReqCMCALoginSeqMsgID uint32 = 12
|
|
var ReqCMCALoginSeqMsgType uint32 = 13
|
|
var ReqCMCALoginSeqMsgName string = "ackCMCALoginSeq"
|
|
|
|
// reqCMCALoginSeq CMCA认证方式登录随机码
|
|
type ReqCMCALoginSeq struct {
|
|
znet.BaseRouter
|
|
}
|
|
|
|
// reqCMCALoginAlarm;user=omc;key=base64Key;cert=cer;type=msg"
|
|
func (s *ReqCMCALoginSeq) Handle(request ziface.IRequest) {
|
|
|
|
// 获取当前请求的通道
|
|
m := manage.GetManager(request.GetConnection().GetName())
|
|
if m == nil {
|
|
zlog.Ins().ErrorF("server internal error")
|
|
request.GetConnection().SendMsg(ReqCMCALoginSeqMsgType, core.ResultError(ReqCMCALoginSeqMsgName, "server internal error", ""))
|
|
return
|
|
}
|
|
uid, err := request.GetConnection().GetProperty("UID")
|
|
if err != nil {
|
|
zlog.Ins().ErrorF("GetProperty UID error %s", err)
|
|
request.GetConnection().Stop()
|
|
return
|
|
}
|
|
// seqNo 32位长度 0-9A-Z
|
|
seqNo := utils.SeqNo(32)
|
|
m.SetSeqNo(uid.(string), seqNo)
|
|
|
|
// 发送随机码去sha256加密
|
|
msgData := map[string]string{
|
|
"seqNo": seqNo,
|
|
}
|
|
request.GetConnection().SendMsg(ReqCMCALoginSeqMsgType, core.Result(ReqCMCALoginSeqMsgName, msgData))
|
|
}
|