|
@@ -45,15 +45,21 @@ func (l *CheckTokenLogic) CheckToken(req *types.CheckTokenReq) (resp *types.Chec
|
|
|
if tokenItem == nil { // 判断Token是否存在
|
|
|
valid = false
|
|
|
} else if tokenItem.ExpireAt.Unix() > timestamp { // 判断Token是否过期
|
|
|
- valid = true
|
|
|
- if tokenItem.MAC == "" {
|
|
|
+ if tokenItem.MAC == "" { // 判断MAC是否存在,如果不存咋则说明是第一次激活该Token
|
|
|
+ valid = true
|
|
|
err = l.svcCtx.DB.Token.UpdateOneID(tokenItem.ID).SetNotNilMAC(req.Mac).Exec(l.ctx)
|
|
|
if err != nil {
|
|
|
return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
|
|
|
}
|
|
|
+ } else if tokenItem.MAC != *req.Mac { // 如果Mac地址不匹配说明该请求不合法
|
|
|
+ valid = false
|
|
|
+ } else { // 这是正常验证,返回OK
|
|
|
+ valid = true
|
|
|
}
|
|
|
|
|
|
- sign = generateSign(*req.Token, *req.Mac, strconv.Itoa(int(timestamp)))
|
|
|
+ if valid {
|
|
|
+ sign = generateSign(*req.Token, *req.Mac, strconv.Itoa(int(timestamp)))
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return &types.CheckTokenResp{
|