1
21
22 package jwt_test
23
24 import (
25 "testing"
26 "time"
27
28 "github.com/stretchr/testify/assert"
29
30 . "github.com/ory/fosite/token/jwt"
31 )
32
33 func TestIDTokenAssert(t *testing.T) {
34 assert.NoError(t, (&IDTokenClaims{ExpiresAt: time.Now().UTC().Add(time.Hour)}).
35 ToMapClaims().Valid())
36 assert.Error(t, (&IDTokenClaims{ExpiresAt: time.Now().UTC().Add(-time.Hour)}).
37 ToMapClaims().Valid())
38
39 assert.NotEmpty(t, (new(IDTokenClaims)).ToMapClaims()["jti"])
40 }
41
42 func TestIDTokenClaimsToMap(t *testing.T) {
43 idTokenClaims := &IDTokenClaims{
44 JTI: "foo-id",
45 Subject: "peter",
46 IssuedAt: time.Now().UTC().Round(time.Second),
47 Issuer: "fosite",
48 Audience: []string{"tests"},
49 ExpiresAt: time.Now().UTC().Add(time.Hour).Round(time.Second),
50 AuthTime: time.Now().UTC(),
51 RequestedAt: time.Now().UTC(),
52 AccessTokenHash: "foobar",
53 CodeHash: "barfoo",
54 AuthenticationContextClassReference: "acr",
55 AuthenticationMethodsReferences: []string{"amr"},
56 Extra: map[string]interface{}{
57 "foo": "bar",
58 "baz": "bar",
59 },
60 }
61 assert.Equal(t, map[string]interface{}{
62 "jti": idTokenClaims.JTI,
63 "sub": idTokenClaims.Subject,
64 "iat": idTokenClaims.IssuedAt.Unix(),
65 "rat": idTokenClaims.RequestedAt.Unix(),
66 "iss": idTokenClaims.Issuer,
67 "aud": idTokenClaims.Audience,
68 "exp": idTokenClaims.ExpiresAt.Unix(),
69 "foo": idTokenClaims.Extra["foo"],
70 "baz": idTokenClaims.Extra["baz"],
71 "at_hash": idTokenClaims.AccessTokenHash,
72 "c_hash": idTokenClaims.CodeHash,
73 "auth_time": idTokenClaims.AuthTime.Unix(),
74 "acr": idTokenClaims.AuthenticationContextClassReference,
75 "amr": idTokenClaims.AuthenticationMethodsReferences,
76 }, idTokenClaims.ToMap())
77
78 idTokenClaims.Nonce = "foobar"
79 assert.Equal(t, map[string]interface{}{
80 "jti": idTokenClaims.JTI,
81 "sub": idTokenClaims.Subject,
82 "iat": idTokenClaims.IssuedAt.Unix(),
83 "rat": idTokenClaims.RequestedAt.Unix(),
84 "iss": idTokenClaims.Issuer,
85 "aud": idTokenClaims.Audience,
86 "exp": idTokenClaims.ExpiresAt.Unix(),
87 "foo": idTokenClaims.Extra["foo"],
88 "baz": idTokenClaims.Extra["baz"],
89 "at_hash": idTokenClaims.AccessTokenHash,
90 "c_hash": idTokenClaims.CodeHash,
91 "auth_time": idTokenClaims.AuthTime.Unix(),
92 "acr": idTokenClaims.AuthenticationContextClassReference,
93 "amr": idTokenClaims.AuthenticationMethodsReferences,
94 "nonce": idTokenClaims.Nonce,
95 }, idTokenClaims.ToMap())
96 }
97
View as plain text