code: func NewIDP(config *IDPConfig) *IDP {
  	var idp = new(IDP)
  	idp.config = config
  
  	idp.cache = cache.New(config.KeyCacheExpiration, config.CacheCleanupInterval)
  	idp.cache.OnEvicted(func(key string, value interface{}) { idp.refreshCache(key) })
  
  	idp.createChallengeCookieOptions = new(sessions.Options)
  	idp.createChallengeCookieOptions.Path = "/"
  	idp.createChallengeCookieOptions.MaxAge = int(config.ChallengeExpiration.Seconds())
  	idp.createChallengeCookieOptions.Secure = true // Send only via https
  	idp.createChallengeCookieOptions.HttpOnly = false
  
  	idp.deleteChallengeCookieOptions = new(sessions.Options)
  	idp.deleteChallengeCookieOptions.Path = "/"
  	idp.deleteChallengeCookieOptions.MaxAge = -1   // Mark for deletion
  	idp.deleteChallengeCookieOptions.Secure = true // Send only via https
  	idp.deleteChallengeCookieOptions.HttpOnly = false
  
  	return idp
  }
docs: // Create the Identity Provider helper