auth

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

99:5bccbed6631b Go to Latest

auth/config.go

Add an endpoint to validate and register profiles. Add a newProfileRequest object that defines the user-specified properties of a new Profile. Add a helper that validates a newProfileRequest and modifies it for sanitization, mostly just removing leading and trailing whitespace. Add MaxNameLength, MaxUsernameLength, and MaxEmailLength constants to hold the maximum length for those properties. Add errors to be returned when a users attempts to log in with a profile that is compromised or locked. Add the bare bones of a CreateProfileHandler that validates a profile registration request adn uses it to create a Profile and at least one Login. Create a requestError struct that is used for returning API errors, along with constants for the slugs we'll use to signal those errors.

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 }