mirror of
https://github.com/fumiama/fumitok.git
synced 2026-06-26 23:20:23 +08:00
fix: refresh token validate logic
This commit is contained in:
2
token.go
2
token.go
@@ -171,7 +171,7 @@ func (t *Tokenizer) Refresh(
|
|||||||
if crc != h.Sum64() {
|
if crc != h.Sum64() {
|
||||||
return "", ErrInvalidToken
|
return "", ErrInvalidToken
|
||||||
}
|
}
|
||||||
if time.Now().Add(validAfter).After( // still valid after 30 mins
|
if time.Now().Add(-validAfter).After( // still invalid even before this time
|
||||||
time.UnixMilli(int64(binary.LittleEndian.Uint64(data[:8]))),
|
time.UnixMilli(int64(binary.LittleEndian.Uint64(data[:8]))),
|
||||||
) {
|
) {
|
||||||
return "", ErrExpiredToken
|
return "", ErrExpiredToken
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package fumitok
|
|||||||
import (
|
import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@@ -28,15 +29,26 @@ func TestTokenizer(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if vid != id || addt != 0x34 {
|
if vid != id || addt != 0x34 {
|
||||||
t.Fatal("id", id, "vid", vid, "addt", addt)
|
t.Fatal("validate id", id, "vid", vid, "addt", addt)
|
||||||
}
|
}
|
||||||
token, err = tk.Generate(id, time.Now().Add(-time.Minute), 0, 0)
|
token2, err := tk.Generate(id, time.Now().Add(-time.Minute), 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
t.Log(token)
|
t.Log(token2)
|
||||||
_, _, err = tk.Validate(token, 0)
|
_, _, err = tk.Validate(token2, 0)
|
||||||
if err != ErrExpiredToken {
|
if err != ErrExpiredToken {
|
||||||
t.Fatal("unexpected err", err)
|
t.Fatal("unexpected err", err)
|
||||||
}
|
}
|
||||||
|
token, err = tk.Refresh(token, time.Now().Add(time.Minute), time.Minute*2, 0x00ff)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
vid, addt, err = tk.Validate(token, 0x00ff)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if vid != id || addt != 0x34 {
|
||||||
|
t.Fatal("refresh id", id, "vid", vid, "addt", fmt.Sprintf("%02x", addt))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user