auth

package
v0.0.0-...-b76d47b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2021 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUserNotFound    = errors.New("user not found")
	ErrTokenNotFound   = errors.New("token not found")
	ErrTokenNotCreated = errors.New("token not created")
	ErrTokenNotDeleted = errors.New("token not deleted")
	ErrEmptyName       = errors.New("username cannot be empty")
	ErrTokenExpired    = errors.New("token expired")
)

Functions

This section is empty.

Types

type Credentials

type Credentials struct {
	Login    string `json:"login"`
	Password string `json:"password"`
}

type Handler

type Handler interface {
	Login(w http.ResponseWriter, r *http.Request)
	Logout(w http.ResponseWriter, r *http.Request)
}

func NewHandlers

func NewHandlers(vi VerifyInteractor, si SessionInteractor) Handler

type Repo

type Repo struct {
	// contains filtered or unexported fields
}

func NewSQLRepository

func NewSQLRepository(db sqlutil.SQLDatabase) *Repo

func (Repo) DeleteToken

func (r Repo) DeleteToken(id uuid.UUID) error

func (Repo) DeleteTokenByUser

func (r Repo) DeleteTokenByUser(user string) error

func (Repo) FindTokenByUser

func (r Repo) FindTokenByUser(user string) (*Token, error)

func (Repo) SaveToken

func (r Repo) SaveToken(token *Token) error

func (Repo) TokenById

func (r Repo) TokenById(id uuid.UUID) (*Token, error)

func (Repo) User

func (r Repo) User(name string) (*User, error)

type Repository

type Repository interface {
	UserRepository
	TokenRepository
}

type SessionInteractor

type SessionInteractor interface {
	StartSession(w http.ResponseWriter, user string) error
	DeleteSession(w http.ResponseWriter, r *http.Request) error
	AuthMiddleware(next http.Handler) http.Handler
}

func NewSessionInteractor

func NewSessionInteractor(tokenRepo TokenRepository, expires time.Duration) SessionInteractor

type Token

type Token struct {
	Id      uuid.UUID
	User    string
	Expires int64
}

func (Token) Validate

func (t Token) Validate() error

type TokenRepository

type TokenRepository interface {
	TokenById(id uuid.UUID) (*Token, error)
	FindTokenByUser(user string) (*Token, error)
	SaveToken(token *Token) error
	DeleteToken(id uuid.UUID) error
	DeleteTokenByUser(user string) error
}

type User

type User struct {
	Name string
	Salt []uint8
	Hash []uint8
}

type UserRepository

type UserRepository interface {
	User(name string) (*User, error)
}

type VerifyInteractor

type VerifyInteractor interface {
	Verify(login, password string) (bool, error)
}

func NewArgon2VerifyInteractor

func NewArgon2VerifyInteractor(userRepo UserRepository) VerifyInteractor

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL