31 lines
799 B
Go
31 lines
799 B
Go
|
package config
|
||
|
|
||
|
type Auth struct {
|
||
|
DefaultAdmin DefaultAdmin `envPrefix:"DEFAULT_ADMIN_"`
|
||
|
Providers AuthProviders `envPrefix:"PROVIDERS_"`
|
||
|
}
|
||
|
|
||
|
type DefaultAdmin struct {
|
||
|
Email string `env:"EMAIL,expand"`
|
||
|
Provider string `env:"PROVIDER,expand"`
|
||
|
}
|
||
|
|
||
|
type AuthProviders struct {
|
||
|
Google OAuth2Provider `envPrefix:"GOOGLE_"`
|
||
|
Github OAuth2Provider `envPrefix:"GITHUB_"`
|
||
|
OIDC OIDCProvider `envPrefix:"OIDC_"`
|
||
|
}
|
||
|
|
||
|
type OAuth2Provider struct {
|
||
|
Key string `env:"KEY,expand"`
|
||
|
Secret string `env:"SECRET,expand"`
|
||
|
Scopes []string `env:"SCOPES",expand"`
|
||
|
}
|
||
|
|
||
|
type OIDCProvider struct {
|
||
|
OAuth2Provider
|
||
|
DiscoveryURL string `env:"DISCOVERY_URL,expand"`
|
||
|
Icon string `env:"ICON,expand" envDefault:"fa-passport"`
|
||
|
Label string `env:"LABEL,expand" envDefault:"OpenID Connect"`
|
||
|
}
|