auth

Paddy 2014-12-14 Parent:e57a57a944c4 Child:e98d19699ee9

98:09c47387e455 Go to Latest

auth/config.go

Move login concerns to session, add login handler. Move all our helpers for authenticating, building a login redirect, and reading a cookie to session.go. Rewrite our passphrase scheme code so that a scheme is just a struct with three functions for checking a passphrase against a profile object, generating a passphrase, and calculating the number of iterations to use when generating a passphrase. Define an implementation of our passphrase scheme (scheme #1) using PBKDF2 and SHA256. Add a CreateSessionHandler function that logs the user in using their login and passphrase. Add a RegisterSessionHandlers function that adds the session-related handlers (right now, just our CreateSessionHandler) to the specified router.

History
paddy@96 1 package auth
paddy@96 2
paddy@96 3 import (
paddy@96 4 "errors"
paddy@96 5 "html/template"
paddy@96 6 )
paddy@96 7
paddy@96 8 var (
paddy@96 9 // 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 10 ErrInvalidLoginURI = errors.New("invalid login URI")
paddy@96 11 )
paddy@96 12
paddy@96 13 // Config holds the configuration values necessary to run a server. A Config
paddy@96 14 // instance is the only way to instantiate a Context variable.
paddy@96 15 type Config struct {
paddy@96 16 ClientStore clientStore
paddy@96 17 AuthCodeStore authorizationCodeStore
paddy@96 18 ProfileStore profileStore
paddy@96 19 TokenStore tokenStore
paddy@96 20 SessionStore sessionStore
paddy@96 21 Template *template.Template
paddy@96 22 LoginURI string
paddy@96 23 iterations int
paddy@96 24 }