fix: need to use the claim by ref

This commit is contained in:
Derrick Hammer 2024-02-17 20:07:43 -05:00
parent 2fd3368b5a
commit fc1dd491d6
Signed by: pcfreak30
GPG Key ID: C997C339BE476FF2
1 changed files with 4 additions and 3 deletions

View File

@ -4,9 +4,10 @@ import (
"crypto/ed25519" "crypto/ed25519"
"errors" "errors"
"fmt" "fmt"
"github.com/golang-jwt/jwt/v5"
"strconv" "strconv"
"time" "time"
"github.com/golang-jwt/jwt/v5"
) )
type JWTPurpose string type JWTPurpose string
@ -55,7 +56,7 @@ func JWTGenerateTokenWithDuration(domain string, privateKey ed25519.PrivateKey,
} }
func JWTVerifyToken(token string, domain string, privateKey ed25519.PrivateKey, verifyFunc VerifyTokenFunc) (*jwt.RegisteredClaims, error) { func JWTVerifyToken(token string, domain string, privateKey ed25519.PrivateKey, verifyFunc VerifyTokenFunc) (*jwt.RegisteredClaims, error) {
validatedToken, err := jwt.ParseWithClaims(token, jwt.RegisteredClaims{}, func(token *jwt.Token) (interface{}, error) { validatedToken, err := jwt.ParseWithClaims(token, &jwt.RegisteredClaims{}, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodEd25519); !ok { if _, ok := token.Method.(*jwt.SigningMethodEd25519); !ok {
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"]) return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
} }
@ -73,7 +74,7 @@ func JWTVerifyToken(token string, domain string, privateKey ed25519.PrivateKey,
verifyFunc = nopVerifyFunc verifyFunc = nopVerifyFunc
} }
claim, ok := validatedToken.Claims.(jwt.RegisteredClaims) claim, ok := validatedToken.Claims.(*jwt.RegisteredClaims)
if !ok { if !ok {
return nil, fmt.Errorf("%w: %s", ErrJWTUnexpectedClaimsType, validatedToken.Claims) return nil, fmt.Errorf("%w: %s", ErrJWTUnexpectedClaimsType, validatedToken.Claims)