Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidatePassword ¶
func ValidatePassword() fiber.Handler
Types ¶
type AuthService ¶
type AuthService struct {
// contains filtered or unexported fields
}
AuthService allows dependency injection for the controller methods, so that the db connection needn't be created in the controller methods
func NewAuthService ¶
func NewAuthService(conf *cfg.Config, ms *models.MemberStorage, log *zerolog.Logger) *AuthService
NewAuthService creates an instance of the AuthService struct and returns a pointer to it It should be used within the routes package where the db connection and config are passed from the main package
func (*AuthService) Login ¶
func (a *AuthService) Login(c *fiber.Ctx) error
1. Parse the input 2. Validate the input (check for empty fields, valid email, etc.) 3. Pass the email to the database, get the password hash for the email or nickname 4. Compare the password hash with the password hash from the database
func (*AuthService) Register ¶
func (a *AuthService) Register(c *fiber.Ctx) error
Register handles the creation of a new user
type LoginInput ¶
type LoginInput struct { Email string `json:"email,omitempty"` MemberName string `json:"membername,omitempty"` Password string `json:"password"` }
LoginInput is the input for the login request
func (LoginInput) Validate ¶
func (l LoginInput) Validate() (*models.MemberInput, error)
type RegLoginInput ¶
type RegLoginInput interface { RegisterInput | LoginInput }
RegLoginInput is an union (feature introduced in Go 1.18) of RegisterInput and LoginInput
type RegisterInput ¶
type RegisterInput struct { Email string `json:"email"` MemberName string `json:"membername"` Password string `json:"password"` PasswordConfirm string `json:"passwordConfirm"` Roles []string `json:"roles"` }
RegisterInput is the input for the registration request
func (RegisterInput) Validate ¶
func (r RegisterInput) Validate() (*models.MemberInput, error)
type Validator ¶
type Validator interface {
Validate() (*models.MemberInput, error)
}