diff --git a/cmd/jwt/main.go b/cmd/jwt/main.go index 0f49c703..37b4fccf 100644 --- a/cmd/jwt/main.go +++ b/cmd/jwt/main.go @@ -150,20 +150,15 @@ func verifyToken() error { } }) - // Print some debug data - if *flagDebug && token != nil { - fmt.Fprintf(os.Stderr, "Header:\n%v\n", token.Header) - fmt.Fprintf(os.Stderr, "Claims:\n%v\n", token.Claims) - } - // Print an error if we can't parse for some reason if err != nil { return fmt.Errorf("couldn't parse token: %w", err) } - // Is token invalid? - if !token.Valid { - return fmt.Errorf("token is invalid") + // Print some debug data + if *flagDebug { + fmt.Fprintf(os.Stderr, "Header:\n%v\n", token.Header) + fmt.Fprintf(os.Stderr, "Claims:\n%v\n", token.Claims) } // Print the token details @@ -279,7 +274,7 @@ func showToken() error { } token, err := jwt.Parse(string(tokData), nil) - if token == nil { + if err != nil { return fmt.Errorf("malformed token: %w", err) } diff --git a/example_test.go b/example_test.go index 932ee4cd..651841de 100644 --- a/example_test.go +++ b/example_test.go @@ -3,6 +3,7 @@ package jwt_test import ( "errors" "fmt" + "log" "time" "github.com/golang-jwt/jwt/v5" @@ -24,7 +25,7 @@ func ExampleNewWithClaims_registeredClaims() { token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) ss, err := token.SignedString(mySigningKey) - fmt.Printf("%v %v", ss, err) + fmt.Println(ss, err) // Output: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0ZXN0IiwiZXhwIjoxNTE2MjM5MDIyfQ.0XN_1Tpp9FszFOonIBpwha0c_SfnNI22DhTnjMshPg8 } @@ -67,7 +68,7 @@ func ExampleNewWithClaims_customClaimsType() { token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) ss, err := token.SignedString(mySigningKey) - fmt.Printf("%v %v", ss, err) + fmt.Println(ss, err) // Output: foo: bar // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYXIiLCJpc3MiOiJ0ZXN0IiwiZXhwIjoxNTE2MjM5MDIyfQ.xVuY2FZ_MRXMIEgVQ7J-TFtaucVFRXUzHm9LmV41goM @@ -86,11 +87,12 @@ func ExampleParseWithClaims_customClaimsType() { token, err := jwt.ParseWithClaims(tokenString, &MyCustomClaims{}, func(token *jwt.Token) (interface{}, error) { return []byte("AllYourBase"), nil }) - - if claims, ok := token.Claims.(*MyCustomClaims); ok && token.Valid { - fmt.Printf("%v %v", claims.Foo, claims.RegisteredClaims.Issuer) + if err != nil { + log.Fatal(err) + } else if claims, ok := token.Claims.(*MyCustomClaims); ok { + fmt.Println(claims.Foo, claims.RegisteredClaims.Issuer) } else { - fmt.Println(err) + log.Fatal("unknown claims type, cannot proceed") } // Output: bar test @@ -109,11 +111,12 @@ func ExampleParseWithClaims_validationOptions() { token, err := jwt.ParseWithClaims(tokenString, &MyCustomClaims{}, func(token *jwt.Token) (interface{}, error) { return []byte("AllYourBase"), nil }, jwt.WithLeeway(5*time.Second)) - - if claims, ok := token.Claims.(*MyCustomClaims); ok && token.Valid { - fmt.Printf("%v %v", claims.Foo, claims.RegisteredClaims.Issuer) + if err != nil { + log.Fatal(err) + } else if claims, ok := token.Claims.(*MyCustomClaims); ok { + fmt.Println(claims.Foo, claims.RegisteredClaims.Issuer) } else { - fmt.Println(err) + log.Fatal("unknown claims type, cannot proceed") } // Output: bar test @@ -147,11 +150,12 @@ func ExampleParseWithClaims_customValidation() { token, err := jwt.ParseWithClaims(tokenString, &MyCustomClaims{}, func(token *jwt.Token) (interface{}, error) { return []byte("AllYourBase"), nil }, jwt.WithLeeway(5*time.Second)) - - if claims, ok := token.Claims.(*MyCustomClaims); ok && token.Valid { - fmt.Printf("%v %v", claims.Foo, claims.RegisteredClaims.Issuer) + if err != nil { + log.Fatal(err) + } else if claims, ok := token.Claims.(*MyCustomClaims); ok { + fmt.Println(claims.Foo, claims.RegisteredClaims.Issuer) } else { - fmt.Println(err) + log.Fatal("unknown claims type, cannot proceed") } // Output: bar test diff --git a/hmac_example_test.go b/hmac_example_test.go index 4b2ff08a..1b1edf46 100644 --- a/hmac_example_test.go +++ b/hmac_example_test.go @@ -2,6 +2,7 @@ package jwt_test import ( "fmt" + "log" "os" "time" @@ -56,8 +57,11 @@ func ExampleParse_hmac() { // hmacSampleSecret is a []byte containing your secret, e.g. []byte("my_secret_key") return hmacSampleSecret, nil }) + if err != nil { + log.Fatal(err) + } - if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid { + if claims, ok := token.Claims.(jwt.MapClaims); ok { fmt.Println(claims["foo"], claims["nbf"]) } else { fmt.Println(err) diff --git a/http_example_test.go b/http_example_test.go index 403f18f6..0b22af93 100644 --- a/http_example_test.go +++ b/http_example_test.go @@ -83,9 +83,7 @@ func Example_getTokenViaHTTP() { "user": {"test"}, "pass": {"known"}, }) - if err != nil { - fatal(err) - } + fatal(err) if res.StatusCode != 200 { fmt.Println("Unexpected status code", res.StatusCode)