Skip to content

Commit b5d850b

Browse files
authored
Merge pull request #92 from drakkan/errcheck
Encode: check for errors while setting claim fields
2 parents 1ff6081 + c856efe commit b5d850b

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

jwtauth.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ func VerifyToken(ja *JWTAuth, tokenString string) (jwt.Token, error) {
122122
func (ja *JWTAuth) Encode(claims map[string]interface{}) (t jwt.Token, tokenString string, err error) {
123123
t = jwt.New()
124124
for k, v := range claims {
125-
t.Set(k, v)
125+
if err := t.Set(k, v); err != nil {
126+
return nil, "", err
127+
}
126128
}
127129
payload, err := ja.sign(t)
128130
if err != nil {

jwtauth_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,23 @@ func TestMore(t *testing.T) {
279279
}
280280
}
281281

282+
func TestEncodeClaims(t *testing.T) {
283+
claims := map[string]interface{}{
284+
"key1": "val1",
285+
"key2": 2,
286+
"key3": time.Now(),
287+
"key4": []string{"1", "2"},
288+
}
289+
claims[jwt.JwtIDKey] = 1
290+
if _, _, err := TokenAuthHS256.Encode(claims); err == nil {
291+
t.Fatal("encoding invalid claims succeeded")
292+
}
293+
claims[jwt.JwtIDKey] = "123"
294+
if _, _, err := TokenAuthHS256.Encode(claims); err != nil {
295+
t.Fatalf("unexpected error encoding valid claims: %v", err)
296+
}
297+
}
298+
282299
//
283300
// Test helper functions
284301
//

0 commit comments

Comments
 (0)