rewrite and new Hash interface

This commit is contained in:
ston1th 2016-12-29 11:08:25 +01:00
commit 40fe9931a8
3 changed files with 215 additions and 96 deletions

View file

@ -1,25 +1,51 @@
package jwt
import (
"errors"
"testing"
"time"
)
func TestValidate(t *testing.T) {
jwt, _ := New(0, true)
token := NewToken(HS256, map[string]interface{}{
jwt := New(time.Second, true)
token := NewToken(map[string]interface{}{
"sub": "1234567890",
"name": "John Doe",
"admin": true,
"fizz": "buzz",
})
}, nil)
err := jwt.Sign(token)
t.Log(err, token)
nt, err := DecodeToken(token.Raw)
t.Log(nt, err)
time.Sleep(time.Second)
t.Log(jwt.Verify(nt))
jwt.Invalidate(nt)
t.Log(jwt.Verify(nt))
jwt.Stop()
if err != nil {
t.Error(err)
}
nt, err := DecodeToken(token.String())
if err != nil {
t.Error(err)
}
err = jwt.Verify(nt)
if err != nil {
t.Error(err)
}
time.Sleep(time.Second * 2)
err = jwt.Verify(nt)
if err == nil {
t.Error(errors.New("token should be expired"))
}
err = jwt.Invalidate(nt)
if err != nil {
t.Error(err)
}
err = jwt.Invalidate(nt)
if err == nil {
t.Error(errors.New("double invalidate"))
}
err = jwt.Verify(nt)
if err == nil {
t.Error(errors.New("token should be blacklisted"))
}
err = jwt.Stop()
if err != nil {
t.Error(err)
}
}