auth

package
v0.0.0-...-943fa91 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UserCreatedEvent = "UserCreated"
	UserUpdatedEvent = "UserUpdated"
)
View Source
const TokenExpiration = 24 * time.Hour

Variables

View Source
var ErrInvalidState = errors.New("invalid state error")
View Source
var ErrTokenExpired = errors.New("token expired")
View Source
var ErrUserNotFound = errors.New("user not found")

Functions

func NewUserCreatedEvent

func NewUserCreatedEvent(user User) shared.Event

func NewUserUpdatedEvent

func NewUserUpdatedEvent(user User) shared.Event

Types

type ConfirmOAuth2UseCase

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

func NewConfirmOAuth2UseCase

func NewConfirmOAuth2UseCase(
	provider OAuth2Provider,
	stateRepo StateRepo,
	userRepo UserRepo,
	idGen shared.IDGenerator,
	tokenEncoder TokenEncoder,
	txManager shared.TransactionManager,
	publisher shared.Publisher,
) *ConfirmOAuth2UseCase

func (*ConfirmOAuth2UseCase) Run

func (u *ConfirmOAuth2UseCase) Run(ctx context.Context, state, code string) (token string, err error)

type OAuth2Provider

type OAuth2Provider interface {
	AuthURL(state string) string
	AuthenticatedUser(ctx context.Context, code string) (ProviderUser, error)
}

type ProviderUser

type ProviderUser struct {
	ID        string
	Email     string
	Name      string
	AvatarURL string
}

type RequestOAuth2UseCase

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

func NewRequestOAuth2UseCase

func NewRequestOAuth2UseCase(
	provider OAuth2Provider,
	idGen shared.IDGenerator,
	stateRepo StateRepo,
) *RequestOAuth2UseCase

func (*RequestOAuth2UseCase) Run

func (u *RequestOAuth2UseCase) Run() (string, error)

type StateRepo

type StateRepo interface {
	AddState(state string) error
	Exists(state string) (bool, error)
	Remove(state string) error
}

type TokenEncoder

type TokenEncoder interface {
	Encode(value string, expiresIn time.Duration) (string, error)
}

type User

type User struct {
	ID             string
	ProviderUserID string
	Email          string
	Name           string
	AvatarURL      string
}

type UserRepo

type UserRepo interface {
	CreateUser(ctx context.Context, user User) error
	UpdateUser(ctx context.Context, user User) error
	FindUserByProviderUserID(ctx context.Context, providerUserID string) (User, error)
}

Jump to

Keyboard shortcuts

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