func NewJWTVerifier(secretKeys [][]byte) *JWTVerifier {
	return &JWTVerifier{secretKeys: secretKeys}
}
NewJWTVerifier creates JWTVerifier with secret key
package middleware
import (
	"errors"
	"fmt"
	"net/http"
	"strings"
	"sync"
	"time"
	"github.com/optimizely/agent/config"
	"github.com/optimizely/agent/pkg/jwtauth"
	"github.com/dgrijalva/jwt-go"
	"github.com/lestrrat-go/jwx/jwk"
	"github.com/rs/zerolog/log"
)
func getNumberFromJSON(val interface{}) int64 {
	switch v := val.(type) {
	case int64:
		return v
	case float64:
		return int64(v)
	}
	return 0
}
type NoAuth struct{}
func (NoAuth) CheckToken(string) (*jwt.Token, error) {
	return nil, nil
}
type Auth struct {
	Verifier
}
type Verifier interface {
	CheckToken(string) (*jwt.Token, error)
}
type JWTVerifier struct {
	secretKeys [][]byte
}