The https://pkg.go.dev/github.com/dgrijalva/jwt-go#Keyfunc does not specify what should be returned, it simply says "supply the key for verification." Should the function return the JSON key structure? A byte array of the base64 encoded public key? A byte array of the raw key material? A PEM encoded key? A parsed RSA Key?
The documentation should specify what is returned when, assuming different values should be returned for different signing mechanism.
The function signature is also documented as func(token jwt.Token) ([]byte, error), however in practice it seems the function must be implemented as func(token jwt.Token) (interface{}, error)
Migrated from https://github.com/dgrijalva/jwt-go/issues/456