Versions in this module Expand all Collapse all v2 v2.3.0 Feb 21, 2023 v2.2.1 May 23, 2022 v2.2.0 Oct 21, 2021 v2.1.0 Oct 21, 2021 Changes in this version + func Has2FA(user User) bool type AuthConfig + func (cfg *AuthConfig) Init(serverRoot string) error + type PasswordAuth interface + CheckResetCode func(code string) error + IsDirty func() bool + ResetPassword func(dur time.Duration) (string, error) + SetPassword func(password string, inputs ...string) error type TemplateConfig + func (cfg *TemplateConfig) Init(serverRoot string) error + type TwoFactorAuth interface + Configure func() (*authenticator.TwoFactorConfig, error) + GenCode func() string + IsDirty func() bool + type TwoFactorUser interface + CompleteTwoFactorAuth func(code string) error + GetTwoFactorAuth func() (authenticator.Authenticator, error) + InitTwoFactorAuth func() (authenticator.Authenticator, error) + SetTwoFactorAuth func(authenticator.Authenticator) error v2.0.5 Aug 24, 2021 v2.0.4 Jul 22, 2021 v2.0.3 Jul 21, 2021 v2.0.2 Jul 14, 2021 Changes in this version + var ErrInvalidToken = errors.New("invalid token") + var ErrTokenExpired = errors.New("token expired") + var ErrUnknownUser = errors.New("unknown user") + type AuthConfig struct + AuthKey string + Cookie string + EmailSender string + Header string + Issuer string + ResetTTL int + ResetTemplate TemplateConfig + SocialLogin map[string]*SocialLoginConfig + TTL int + TwoFactorTemplate TemplateConfig + type AuthUser interface + GetAuth func() (*twofactor.Auth, error) + SetAuth func(*twofactor.Auth) error + type Authenticator struct + Domain string + EmailClient EmailClient + EmailSender string + JWT *JWT + ResetHTMLTemplate Template + ResetSMSTemplate Template + ResetTTL time.Duration + ResetTextTemplate Template + SMSClient SMSClient + SocialConfig map[string]*SocialLoginConfig + TwoFactorHTMLTemplate Template + TwoFactorSMSTemplate Template + TwoFactorTextTemplate Template + UserSource UserSource + func NewAuthenticator(cfg AuthConfig, serverRoot string) (*Authenticator, error) + func (a *Authenticator) LoginAPI(router H.Router) + func (a *Authenticator) MakeChangePasswordHandler() H.HandlerFunc + func (a *Authenticator) MakeComplete2FAHandler() H.HandlerFunc + func (a *Authenticator) MakeInit2FAHandler() H.HandlerFunc + func (a *Authenticator) MakeLogin2FAHandler() H.HandlerFunc + func (a *Authenticator) MakeLoginHandler() H.HandlerFunc + func (a *Authenticator) MakeLogoutHandler() H.HandlerFunc + func (a *Authenticator) MakeMiddleware() H.Middleware + func (a *Authenticator) MakeResetPasswordHandler() H.HandlerFunc + func (a *Authenticator) MakeSend2FACodeHandler() H.HandlerFunc + func (a *Authenticator) MakeSocialLoginHandlers(router H.Router) + type AvatarUser interface + GetAvatar func() string + type Claims interface + Extend func() + GetProvider func() string + GetTwoFactor func() bool + SetProvider func(string) + SetTwoFactor func(bool) + SetUser func(user User) + type EmailClient interface + Send func(from, to, subject, textContent string, htmlContent *string) error + type EmailUser interface + GetEmailAddress func() string + type FirstLastNameUser interface + GetFirstName func() string + GetLastName func() string + type FullNameUser interface + GetFullName func() string + type Init2FAResponse struct + QRCode string + RecoveryKeys []string + URI string + type IntIDUser interface + GetUserID func() int64 + type JWT struct + func NewJWT(key []byte, ttl time.Duration, issuer, cookieName, headerName string) *JWT + func (j *JWT) GetClaims(token string) (*StandardClaims, error) + func (j *JWT) GetClaimsFromCookie(r *http.Request, name string) (*StandardClaims, error) + func (j *JWT) GetClaimsFromHeader(r *http.Request, name string) (*StandardClaims, error) + func (j *JWT) GetClaimsFromRequest(r *http.Request) (*StandardClaims, error) + func (j *JWT) MakeToken(claims *StandardClaims) (string, error) + func (j *JWT) NewClaims() *StandardClaims + func (j *JWT) SetCookie(w http.ResponseWriter, claims *StandardClaims) error + type LocaleUser interface + GetLocale func() string + type LoginParams struct + NewPassword *string + Password *string + ResetCode *string + TwoFactor *string + Username *string + type LoginResponse struct + Claims *StandardClaims + Needs2FA bool + Token string + Username string + type PasswordResetData struct + Code string + Expires time.Time + Hostname string + Scheme string + Username string + type PhoneUser interface + GetPhoneNumber func() string + type SMSClient interface + Send func(phoneNumber, content string) error + type SocialLoginConfig struct + ClientID string + ClientSecret string + type SocialUser interface + SetSocialID func(driver, id string) error + type SocialUserSource interface + GetSocialUser func(driver, id, username string) (AuthUser, error) + type StandardClaims struct + AuthTime int64 + Avatar string + Email string + Extra map[string]interface{} + FirstName string + FullName string + LastName string + Locale string + Phone string + Provider string + TTL int64 + TimeZone string + TwoFactor bool + UserID int64 + UserUUID uuid.UUID + Username string + func NewStandardClaims(issuer string, dur time.Duration) *StandardClaims + func (c *StandardClaims) Extend() + func (c *StandardClaims) GetAvatar() string + func (c *StandardClaims) GetEmailAddress() string + func (c *StandardClaims) GetFirstName() string + func (c *StandardClaims) GetFullName() string + func (c *StandardClaims) GetLastName() string + func (c *StandardClaims) GetLocale() string + func (c *StandardClaims) GetPhoneNumber() string + func (c *StandardClaims) GetTimeZone() string + func (c *StandardClaims) GetUUID() uuid.UUID + func (c *StandardClaims) GetUserID() int64 + func (c *StandardClaims) GetUsername() string + func (c *StandardClaims) SetFullName(name string) + func (c *StandardClaims) SetUser(user User) + func (c *StandardClaims) Valid() error + type Template interface + Execute func(io.Writer, interface{}) error + type TemplateConfig struct + HTML string + SMS string + Text string + func (cfg *TemplateConfig) GetTemplates(serverRoot string) (text, html, sms Template, err error) + type TimeZoneUser interface + GetTimeZone func() string + type TwoFactorData struct + Code string + Hostname string + Scheme string + Username string + type UUIDUser interface + GetUUID func() uuid.UUID + type User interface + GetUsername func() string + func UserFromContext(ctx context.Context) User + func UserFromRequest(r *http.Request) User + type UserSource interface + GetUser func(username string) (AuthUser, error) + GetUserByEmail func(email string) (AuthUser, error) v2.0.1-d Jul 12, 2021 v2.0.1-c Jul 12, 2021 Other modules containing this package github.com/rclancey/httpserver