added blacklist storage interface

This commit is contained in:
ston1th 2018-01-17 21:53:53 +01:00
commit 4c14116a41
3 changed files with 92 additions and 23 deletions

View file

@ -9,7 +9,7 @@ import (
)
func TestValidate(t *testing.T) {
jwt := New(time.Second, true)
jwt := New(time.Second, NewMapBlacklist())
token := NewToken(map[string]interface{}{
"sub": "1234567890",
"name": "John Doe",
@ -55,3 +55,39 @@ func TestValidate(t *testing.T) {
t.Error(err)
}
}
func TestNoBlacklist(t *testing.T) {
jwt := New(time.Second, nil)
token := NewToken(map[string]interface{}{
"sub": "1234567890",
"name": "John Doe",
"admin": true,
"fizz": "buzz",
}, nil)
err := jwt.Sign(token)
if err != nil {
t.Error(err)
}
_, err = DecodeToken("")
if err == nil {
t.Error(errors.New("token is empty"))
}
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(errors.New("blacklisting should be disabled"))
}
}