jwt: increase leeway and add some tests

also export a constant for the Cookie name

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2025-10-11 14:14:21 +02:00
parent c4bc88cd2e
commit a768dac29d
6 changed files with 42 additions and 9 deletions

View File

@@ -223,3 +223,33 @@ func TestContext(t *testing.T) {
assert.Equal(t, "jwt context value Token", TokenCtxKey.String())
}
func TestValidationLeeway(t *testing.T) {
s, err := NewSigner(jose.HS256, util.GenerateRandomBytes(32))
require.NoError(t, err)
claims := &Claims{}
claims.Audience = []string{util.GenerateUniqueID()}
claims.SetIssuedAt(time.Now().Add(10 * time.Second)) // issued at in the future
claims.SetExpiry(time.Now().Add(10 * time.Second))
token, err := s.Sign(claims)
require.NoError(t, err)
_, err = VerifyToken(s, token)
assert.NoError(t, err)
claims = &Claims{}
claims.Audience = []string{util.GenerateUniqueID()}
claims.SetExpiry(time.Now().Add(-10 * time.Second)) // expired
token, err = s.Sign(claims)
require.NoError(t, err)
_, err = VerifyToken(s, token)
assert.NoError(t, err)
claims = &Claims{}
claims.Audience = []string{util.GenerateUniqueID()}
claims.SetExpiry(time.Now().Add(30 * time.Second))
claims.SetNotBefore(time.Now().Add(10 * time.Second)) // not before in the future
token, err = s.Sign(claims)
require.NoError(t, err)
_, err = VerifyToken(s, token)
assert.NoError(t, err)
}