auth

Paddy 2015-07-18 Parent:0a2c3d677161 Child:b7e685839a1b

179:7bba108d2d9a Go to Latest

auth/config.go

Send events when logins are verified. Add an ActionLoginVerified constant to use as the action when a login has been verified. On second thought, this should probably just be "verified", huh? Then we can reuse it across models. Oops. We also added a call to send a login verified event to NSQ when the login is verified.

History
paddy@96 1 package auth
paddy@96 2
paddy@96 3 import (
paddy@96 4 "errors"
paddy@96 5 "html/template"
paddy@101 6 "log"
paddy@178 7
paddy@178 8 "code.secondbit.org/events.hg"
paddy@96 9 )
paddy@96 10
paddy@96 11 var (
paddy@96 12 // ErrInvalidLoginURI is returned when a Context is instantiated with a Config object that specifies a LoginURI that can't be parsed as a URL.
paddy@96 13 ErrInvalidLoginURI = errors.New("invalid login URI")
paddy@102 14 // ErrConfigNotInitialized is returned when a Context is instantiated with a Config object that hasn't had its Init function called.
paddy@102 15 ErrConfigNotInitialized = errors.New("config not initialized")
paddy@171 16
paddy@171 17 // Version is used to keep track of what version of the build this is
paddy@171 18 Version string
paddy@96 19 )
paddy@96 20
paddy@96 21 // Config holds the configuration values necessary to run a server. A Config
paddy@96 22 // instance is the only way to instantiate a Context variable.
paddy@96 23 type Config struct {
paddy@178 24 ClientStore clientStore
paddy@178 25 AuthCodeStore authorizationCodeStore
paddy@178 26 ProfileStore profileStore
paddy@178 27 TokenStore tokenStore
paddy@178 28 SessionStore sessionStore
paddy@178 29 ScopeStore scopeStore
paddy@178 30 EventsPublisher events.Publisher
paddy@178 31 Template *template.Template
paddy@178 32 LoginURI string
paddy@178 33 JWTPrivateKey []byte
paddy@178 34 iterations int
paddy@178 35 secureCookie bool
paddy@96 36 }
paddy@101 37
paddy@102 38 // Init is a function that preps the Config object to be used for Context creation, setting variables
paddy@102 39 // that are determined at the beginning of program execution.
paddy@101 40 func (c *Config) Init() error {
paddy@101 41 scheme, ok := passphraseSchemes[CurPassphraseScheme]
paddy@101 42 if !ok {
paddy@101 43 return ErrInvalidPassphraseScheme
paddy@101 44 }
paddy@101 45 var err error
paddy@101 46 c.iterations, err = scheme.calculateIterations()
paddy@101 47 if err != nil {
paddy@101 48 return err
paddy@101 49 }
paddy@101 50 log.Printf("Generating passphrases with %d iterations...\n", c.iterations)
paddy@101 51 return nil
paddy@101 52 }