code: func (idp *IDP) getChallengeToken(challengeString string) (*jwt.Token, error) {
  	token, err := jwt.Parse(challengeString, func(token *jwt.Token) (interface{}, error) {
  		_, ok := token.Method.(*jwt.SigningMethodRSA)
  		if !ok {
  			return nil, ErrorBadSigningMethod
  		}
  
  		return idp.getVerificationKey()
  	})
  
  	if err != nil {
  		return nil, err
  	}
  
  	if !token.Valid {
  		return nil, ErrorInvalidToken
  	}
  
  	return token, nil
  }
docs: // Parse and verify the challenge JWT