51 lines
867 B
Go
51 lines
867 B
Go
package jwt
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestValidate(t *testing.T) {
|
|
jwt := New(time.Second, true)
|
|
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)
|
|
}
|
|
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)
|
|
}
|
|
}
|