auth

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2022 License: MIT Imports: 7 Imported by: 0

README

Go-Auth

Go-Auth is a package that does a few things:

  • Generate Bcrypt password hash
  • Verify a Bcrypt passport
  • Generate a JWT Token
  • Validate a JWT Token
  • Generate random SHA1 tokens

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrJWTSigningKeyNotSet  = errors.New("jwt signing key not set")
	ErrInvalidSigningMethod = errors.New("invalid signing method")
	ErrExpiredJWTToken      = errors.New("expired JWT token")
	ErrInvalidJWTAudience   = errors.New("invalid jwt audience")
	ErrInvalidJWTIssuer     = errors.New("invalid jwt issuer")
	ErrInvalidSigningKey    = errors.New("invalid jwt signature")
)

Functions

This section is empty.

Types

type BcryptHasher

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

func NewBCryptHasher

func NewBCryptHasher() *BcryptHasher

func (BcryptHasher) Hash

func (b BcryptHasher) Hash(password []byte) ([]byte, error)

func (BcryptHasher) VerifyPassword

func (b BcryptHasher) VerifyPassword(correctPassword, password []byte) error

type CustomClaim

type CustomClaim struct {
	*jwt.StandardClaims
	TokenType string
}

type IPasswordHasher

type IPasswordHasher interface {
	Hash(password []byte) ([]byte, error)
	VerifyPassword(correctPassword, password []byte) error
}

type ITokenManager

type ITokenManager interface {
	NewJWT(subject string) (*Tokens, error)
	ValidateJWT(token string) (*jwt.Token, string, error)
	GenerateRandomToken() string
}

type MockHasher

type MockHasher struct{}

MockHasher Mock of IPasswordHasher

func NewMockHasher

func NewMockHasher() MockHasher

func (MockHasher) Hash

func (MockHasher) Hash(password []byte) ([]byte, error)

func (MockHasher) VerifyPassword

func (h MockHasher) VerifyPassword(correctPassword, password []byte) error

type MockTokenManager

type MockTokenManager struct{}

func NewMockTokenManager

func NewMockTokenManager() MockTokenManager

func (MockTokenManager) GenerateRandomToken

func (m MockTokenManager) GenerateRandomToken() string

func (MockTokenManager) NewJWT

func (MockTokenManager) NewJWT(subject string) (*Tokens, error)

func (MockTokenManager) ValidateJWT

func (m MockTokenManager) ValidateJWT(token string) (*jwt.Token, string, error)

type TokenManager

type TokenManager struct {
	SigningKey               string
	Audience                 string
	Issuer                   string
	AccessTokenTimeToExpiry  time.Duration
	RefreshTokenTimeToExpiry time.Duration
}

func NewTokenManager

func NewTokenManager(signingKey string, audience string, issuer string,
	accessTokenTimeToExpiry, refreshTokenTimeToExpiry time.Duration) (*TokenManager, error)

func (*TokenManager) GenerateRandomToken

func (t *TokenManager) GenerateRandomToken() string

func (*TokenManager) NewJWT

func (t *TokenManager) NewJWT(subject string) (*Tokens, error)

func (*TokenManager) ValidateJWT

func (t *TokenManager) ValidateJWT(jwtToken string) (*jwt.Token, string, error)

type Tokens

type Tokens struct {
	AccessToken  string
	RefreshToken string
}

Jump to

Keyboard shortcuts

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