diff --git a/http/auth.go b/http/auth.go index de5c29ff..2e4518f0 100644 --- a/http/auth.go +++ b/http/auth.go @@ -69,15 +69,19 @@ func withUser(fn handleFunc) handleFunc { var tk authToken token, err := request.ParseFromRequest(r, &extractor{}, keyFunc, request.WithClaims(&tk)) - if err != nil || !token.Valid { return http.StatusUnauthorized, nil } - expired := !tk.VerifyExpiresAt(time.Now().Add(time.Hour), true) + err = jwt.NewValidator(jwt.WithExpirationRequired()).Validate(tk) + if err != nil { + return http.StatusUnauthorized, nil + } + + expiresSoon := tk.ExpiresAt != nil && time.Until(tk.ExpiresAt.Time) < time.Hour updated := tk.IssuedAt != nil && tk.IssuedAt.Unix() < d.store.Users.LastUpdate(tk.User.ID) - if expired || updated { + if expiresSoon || updated { w.Header().Add("X-Renew-Token", "true") }