3
0
Files
corteza/internal/config/jwt.go
Tit Petric adeefdbeaa fix(all):
- config fixes for singleton values (most)
- add monitor into internal/metrics
- clean up cmd folders to remove monitor
- implement versions on all apps
2018-10-26 11:20:15 +02:00

41 lines
782 B
Go

package config
import (
"github.com/namsral/flag"
"github.com/pkg/errors"
)
type (
JWT struct {
Secret string
Expiry int64
DebugToken bool
CookieDomain string
}
)
var jwt *JWT
func (c *JWT) Validate() error {
if c == nil {
return nil
}
if c.Secret == "" {
return errors.New("JWT Secret not set for AUTH")
}
return nil
}
func (*JWT) Init(prefix ...string) *JWT {
if jwt != nil {
return jwt
}
jwt = new(JWT)
flag.StringVar(&jwt.Secret, "auth-jwt-secret", "", "JWT Secret")
flag.Int64Var(&jwt.Expiry, "auth-jwt-expiry", 3600, "JWT Expiration in minutes")
flag.StringVar(&jwt.CookieDomain, "auth-jwt-cookie-domain", "", "JWT Cookie domain")
flag.BoolVar(&jwt.DebugToken, "auth-jwt-debug", false, "Generate debug JWT key")
return jwt
}