From ad2c02fdc76b858be50ee77b982e734fb18dbadb Mon Sep 17 00:00:00 2001 From: samwaf Date: Fri, 3 Feb 2023 11:23:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E7=99=BB=E5=BD=95=E5=89=8D?= =?UTF-8?q?=E6=9C=89=E5=8E=86=E5=8F=B2=E6=97=A7=E4=BF=A1=E6=81=AF=E4=B8=80?= =?UTF-8?q?=E5=B9=B6=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/waf_login.go | 5 +++++ service/waf_service/waf_token_info.go | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/api/waf_login.go b/api/waf_login.go index 7b80a56..54e556a 100644 --- a/api/waf_login.go +++ b/api/waf_login.go @@ -18,6 +18,11 @@ func (w *WafLoginApi) LoginApi(c *gin.Context) { if err == nil { bean := wafAccountService.GetInfoByLoginApi(req) if bean.Id != "" { + //如果存在旧的状态删除 + oldTokenInfo := wafTokenInfoService.GetInfoByLoginAccount(req.LoginAccount) + if oldTokenInfo.Id != "" { + wafTokenInfoService.DelApiByAccount(oldTokenInfo.LoginAccount) + } //记录状态 accessToken := utils.Md5String(uuid.NewV4().String()) tokenInfo := wafTokenInfoService.AddApi(bean.LoginAccount, accessToken, c.ClientIP()) diff --git a/service/waf_service/waf_token_info.go b/service/waf_service/waf_token_info.go index c52d443..ca08969 100644 --- a/service/waf_service/waf_token_info.go +++ b/service/waf_service/waf_token_info.go @@ -13,6 +13,7 @@ type WafTokenInfoService struct{} var WafTokenInfoServiceApp = new(WafTokenInfoService) func (receiver *WafTokenInfoService) AddApi(loginAccount string, AccessToken string, LoginIp string) *model.TokenInfo { + var bean = &model.TokenInfo{ Id: uuid.NewV4().String(), UserCode: global.GWAF_USER_CODE, @@ -51,7 +52,7 @@ func (receiver *WafTokenInfoService) ModifyApi(loginAccount string, AccessToken */ func (receiver *WafTokenInfoService) GetInfoByLoginAccount(loginAccount string) model.TokenInfo { var bean model.TokenInfo - global.GWAF_LOCAL_DB.Debug().Where("login_account=? ", loginAccount).Find(&bean) + global.GWAF_LOCAL_DB.Debug().Where("login_account=? ", loginAccount).Limit(1).Find(&bean) return bean } @@ -78,3 +79,17 @@ func (receiver *WafTokenInfoService) DelApi(loginAccount string, AccessToken str err = global.GWAF_LOCAL_DB.Where("login_account = ? and access_token = ? ", loginAccount, AccessToken).Delete(model.TokenInfo{}).Error return err } + +/* +* +通过账号删除所有关联状态 +*/ +func (receiver *WafTokenInfoService) DelApiByAccount(loginAccount string) error { + var bean model.TokenInfo + err := global.GWAF_LOCAL_DB.Where("login_account = ?", loginAccount).First(&bean).Error + if err != nil { + return err + } + err = global.GWAF_LOCAL_DB.Where("login_account = ?", loginAccount).Delete(model.TokenInfo{}).Error + return err +}