package compose import ( "time" "github.com/ory/fosite" ) type Config struct { // AccessTokenLifespan sets how long an access token is going to be valid. Defaults to one hour. AccessTokenLifespan time.Duration // AuthorizeCodeLifespan sets how long an authorize code is going to be valid. Defaults to fifteen minutes. AuthorizeCodeLifespan time.Duration // IDTokenLifespan sets how long an id token is going to be valid. Defaults to one hour. IDTokenLifespan time.Duration // HashCost sets the cost of the password hashing cost. Defaults to 12. HashCost int ScopeStrategy fosite.ScopeStrategy } // GetScopeStrategy returns the scope strategy to be used. Defaults to glob scope strategy. func (c *Config) GetScopeStrategy() fosite.ScopeStrategy { if c.ScopeStrategy == nil { c.ScopeStrategy = fosite.WildcardScopeStrategy } return c.ScopeStrategy } // GetAuthorizeCodeLifespan returns how long an authorize code should be valid. Defaults to one fifteen minutes. func (c *Config) GetAuthorizeCodeLifespan() time.Duration { if c.AuthorizeCodeLifespan == 0 { return time.Minute * 15 } return c.AuthorizeCodeLifespan } // GeIDTokenLifespan returns how long an id token should be valid. Defaults to one hour. func (c *Config) GetIDTokenLifespan() time.Duration { if c.IDTokenLifespan == 0 { return time.Hour } return c.IDTokenLifespan } // GetAccessTokenLifespan returns how long a refresh token should be valid. Defaults to one hour. func (c *Config) GetAccessTokenLifespan() time.Duration { if c.AccessTokenLifespan == 0 { return time.Hour } return c.AccessTokenLifespan } // GetAccessTokenLifespan returns how long a refresh token should be valid. Defaults to one hour. func (c *Config) GetHashCost() int { if c.HashCost == 0 { return 12 } return c.HashCost }