 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- func HeaderHandler(ac *Auth, next http.Handler) (handlerFunc, error)
- func IsAuth(ct context.Context) bool
- func JwtHandler(ac *Auth, next http.Handler) (handlerFunc, error)
- func RailsCookieHandler(ac *Auth, next http.Handler) (handlerFunc, error)
- func RailsHandler(ac *Auth, next http.Handler) (handlerFunc, error)
- func RailsMemcacheHandler(ac *Auth, next http.Handler) (handlerFunc, error)
- func RailsRedisHandler(ac *Auth, next http.Handler) (handlerFunc, error)
- func SimpleHandler(ac *Auth, next http.Handler) (http.HandlerFunc, error)
- func WithAuth(next http.Handler, ac *Auth, log *zap.Logger) (http.Handler, error)
- type Auth
- type JWTConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RailsMemcacheHandler ¶
func SimpleHandler ¶
Types ¶
type Auth ¶
type Auth struct {
	// Name is a friendly name for this auth config
	Name string
	// Type can be magiclink, rails, jwt or header
	Type string
	// Cookie is the name of the cookie used
	Cookie string
	// In certain cases like Magiclink the jwt cookie
	// is generated by us this helps set the secure parameter
	// of this cookie
	CookieHTTPS bool `mapstructure:"cookie_https"`
	// In certain cases like Magiclink the jwt cookie
	// is generated by us this helps set the expiry parameter
	// of this cookie (ex. "20m", "2h")
	CookieExpiry string `mapstructure:"cookie_expiry"`
	// CredsInHeader is used in dev only to allow for credentials
	// in header values. Example: The X-User-ID HTTP header can be used to
	// set the user id.
	CredsInHeader bool `mapstructure:"creds_in_header"`
	// SubsCredsInVars is used in dev only to allow for credentials
	// in websocket variable. Example: The user_id websocket variable can be used to
	// set the user id.
	SubsCredsInVars bool `mapstructure:"subs_creds_in_vars"`
	// Rails cookie authentication
	Rails struct {
		// Rails version is needed to decode the cookie correctly.
		// Can be 5.2 or 6
		Version string
		// SecretKeyBase is the cookie encryption key used in your Rails config
		SecretKeyBase string `mapstructure:"secret_key_base"`
		// URL is used for Rails cookie store based auth.
		// Example: redis://redis-host:6379 or memcache://memcache-host
		URL string
		// Password is set if needed by Redis or Memcache
		Password string
		// MaxIdle maximum idle time for the connection
		MaxIdle int `mapstructure:"max_idle"`
		// MaxActive maximum active time for the connection
		MaxActive int `mapstructure:"max_active"`
		// Salt value is from your Rails 5.2 and below auth config
		Salt string
		// SignSalt value is from your Rails 5.2 and below auth config
		SignSalt string `mapstructure:"sign_salt"`
		// AuthSalt value is from your Rails 5.2 and below auth config
		AuthSalt string `mapstructure:"auth_salt"`
	}
	// JWT  authentication
	JWT JWTConfig
	// Header authentication
	Header struct {
		// Name of the HTTP header
		Name string
		// Value if set must match expected value (optional)
		Value string
		// Exists if set to true then the header must exist
		// this is an alternative to using value
		Exists bool
	}
	// Magic.link authentication
	MagicLink struct {
		Secret string
	}
}
    Auth struct contains authentication related config values used by the GraphJin service
 Click to show internal directories. 
   Click to hide internal directories.