Merge pull request #159 from wsczx/dev

新增本地用户过期时间设置
This commit is contained in:
bjdgyc
2022-10-18 17:41:25 +08:00
committed by GitHub
12 changed files with 81 additions and 14 deletions

View File

@@ -13,6 +13,7 @@ import (
"github.com/bjdgyc/anylink/base"
"github.com/bjdgyc/anylink/dbdata"
"github.com/bjdgyc/anylink/pkg/utils"
mapset "github.com/deckarep/golang-set"
"github.com/ivpusic/grpool"
atomic2 "go.uber.org/atomic"
)
@@ -113,6 +114,24 @@ func checkSession() {
}()
}
// 状态为过期的用户踢下线
func CloseUserLimittimeSession() {
s := mapset.NewSetFromSlice(dbdata.CheckUserlimittime())
limitTimeToken := []string{}
sessMux.RLock()
for _, v := range sessions {
v.mux.RLock()
if v.IsActive && s.Contains(v.Username) {
limitTimeToken = append(limitTimeToken, v.Token)
}
v.mux.RUnlock()
}
sessMux.RUnlock()
for _, v := range limitTimeToken {
CloseSess(v)
}
}
func GenToken() string {
// 生成32位的 token
bToken := make([]byte, 32)

View File

@@ -4,4 +4,5 @@ func Start() {
initIpPool()
checkSession()
saveStatsInfo()
CloseUserLimittimeSession()
}