feat: able to set the token's expiration time and number of uses

This commit is contained in:
JustSong
2023-04-24 20:52:40 +08:00
parent c0bb2338de
commit 918ba60802
7 changed files with 228 additions and 42 deletions

View File

@@ -98,6 +98,8 @@ func AddToken(c *gin.Context) {
Key: common.GetUUID(),
CreatedTime: common.GetTimestamp(),
AccessedTime: common.GetTimestamp(),
ExpiredTime: token.ExpiredTime,
RemainTimes: token.RemainTimes,
}
err = cleanToken.Insert()
if err != nil {
@@ -151,8 +153,27 @@ func UpdateToken(c *gin.Context) {
})
return
}
if token.Status == common.TokenStatusEnabled {
if cleanToken.Status == common.TokenStatusExpired && cleanToken.ExpiredTime <= common.GetTimestamp() {
c.JSON(http.StatusOK, gin.H{
"success": false,
"message": "令牌已过期,无法启用,请先修改令牌过期时间",
})
return
}
if cleanToken.Status == common.TokenStatusExhausted && cleanToken.RemainTimes == 0 {
c.JSON(http.StatusOK, gin.H{
"success": false,
"message": "令牌可用次数已用尽,无法启用,请先修改令牌剩余次数",
})
return
}
}
cleanToken.Name = token.Name
cleanToken.Status = token.Status
cleanToken.ExpiredTime = token.ExpiredTime
cleanToken.RemainTimes = token.RemainTimes
err = cleanToken.Update()
if err != nil {
c.JSON(http.StatusOK, gin.H{