fix(users): err is nil if token is expired in checking token failure

This commit is contained in:
hexxa 2022-01-09 18:01:04 +08:00 committed by Hexxa
parent 1c68b130f2
commit a922ff30fc

View file

@ -1,6 +1,7 @@
package multiusers
import (
"errors"
"fmt"
"net/http"
"strconv"
@ -8,10 +9,12 @@ import (
"time"
"github.com/gin-gonic/gin"
q "github.com/ihexxa/quickshare/src/handlers"
"github.com/ihexxa/quickshare/src/db/userstore"
q "github.com/ihexxa/quickshare/src/handlers"
)
var ErrExpired = errors.New("token is expired")
func apiRuleCname(role, method, path string) string {
return fmt.Sprintf("%s-%s-%s", role, method, path)
}
@ -43,9 +46,12 @@ func (h *MultiUsersSvc) AuthN() gin.HandlerFunc {
now := time.Now().Unix()
expire, err := strconv.ParseInt(claims[q.ExpireParam], 10, 64)
if err != nil || expire <= now {
if err != nil {
c.AbortWithStatusJSON(q.ErrResp(c, 401, err))
return
} else if expire <= now {
c.AbortWithStatusJSON(q.ErrResp(c, 401, ErrExpired))
return
}
}
// set default values if token is empty