added utc time functions

This commit is contained in:
ston1th 2018-09-13 15:58:24 +02:00
commit 1bdb6009cf
2 changed files with 27 additions and 5 deletions

10
jwt.go
View file

@ -135,7 +135,7 @@ func (jwt *JWT) Invalidate(t *Token) error {
switch {
case exp == 0:
return ErrMissingExp
case time.Now().UTC().Unix() > exp:
case Now() > exp:
return ErrExp
}
if !hmac.Equal(jwt.sum(t.Data(), h), t.RawSig()) {
@ -190,12 +190,12 @@ func (jwt *JWT) Sign(t *Token) (err error) {
if h == nil {
return ErrUnsupportedAlg
}
now := time.Now().UTC()
now := time.Now()
if _, ok := t.Claims.Get(ExpClaim); !ok {
t.Claims.Set(ExpClaim, now.Add(jwt.expiry).Unix())
t.Claims.Set(ExpClaim, newExp(now, jwt.expiry))
}
if _, ok := t.Claims.Get(NbfClaim); !ok {
t.Claims.Set(NbfClaim, now.Unix())
t.Claims.Set(NbfClaim, NewNbf(now))
}
head, err := json.Marshal(t.Header)
if err != nil {
@ -222,7 +222,7 @@ func (jwt *JWT) Verify(t *Token) error {
return err
}
}
now := time.Now().UTC().Unix()
now := Now()
if t.Header.GetString(TypClaim) != Typ {
return ErrNoJWT
}

22
time.go Normal file
View file

@ -0,0 +1,22 @@
package jwt
import "time"
// Now returns the current time in UTC Unix format
func Now() int64 {
return NewNbf(time.Now())
}
// NewNbf returns a new 'not before' date
func NewNbf(t time.Time) int64 {
return t.UTC().Unix()
}
// NewExp returns a new expiration date
func NewExp(d time.Duration) int64 {
return newExp(time.Now(), d)
}
func newExp(t time.Time, d time.Duration) int64 {
return t.UTC().Add(d).Unix()
}