github.com/clerkinc/clerk-sdk-go@v1.49.1/clerk/tokens_issuer.go (about)

     1  package clerk
     2  
     3  import "strings"
     4  
     5  type issuer struct {
     6  	iss         string
     7  	isSatellite bool
     8  	proxyURL    string
     9  }
    10  
    11  func newIssuer(iss string) *issuer {
    12  	return &issuer{
    13  		iss: iss,
    14  	}
    15  }
    16  
    17  func (iss *issuer) WithSatelliteDomain(isSatellite bool) *issuer {
    18  	iss.isSatellite = isSatellite
    19  	return iss
    20  }
    21  
    22  func (iss *issuer) WithProxyURL(proxyURL string) *issuer {
    23  	iss.proxyURL = proxyURL
    24  	return iss
    25  }
    26  
    27  func (iss *issuer) IsValid() bool {
    28  	if iss.isSatellite {
    29  		return true
    30  	}
    31  
    32  	if iss.proxyURL != "" {
    33  		return iss.iss == iss.proxyURL
    34  	}
    35  
    36  	return strings.HasPrefix(iss.iss, "https://clerk.") ||
    37  		strings.Contains(iss.iss, ".clerk.accounts")
    38  }