3
0
2018-09-17 16:08:02 +02:00

41 lines
783 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
}