authentication

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2023 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SocialLoginGoogle   = "google"
	SocialLoginFacebook = "facebook"
	SocialLoginApple    = "apple"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthProviderEntity added in v0.3.1

type AuthProviderEntity interface {
	beeorm.Entity
	AuthenticatableEntity
	GetUniqueFieldName() string
	GetPassword() string
}

type AuthenticatableEntity added in v0.9.69

type AuthenticatableEntity interface {
	beeorm.Entity
	CanAuthenticate() bool
}

type Authentication

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

func NewAuthenticationService

func NewAuthenticationService(
	secret string,
	accessTokenTTL int,
	refreshTokenTTL int,
	otpTTL int,
	otpLength int,
	appService *app.App,
	generatorService generator.IGenerator,
	errorLoggerService errorlogger.ErrorLogger,
	clockService clock.IClock,
	passwordService password.IPassword,
	jwtService *jwt.JWT,
	mailService *mail.ISender,
	socialServiceMapping map[string]social.IUserData,
	uuidService uuid.IUUID,
) *Authentication

func (*Authentication) Authenticate

func (t *Authentication) Authenticate(
	ormService *datalayer.ORM,
	uniqueValue string,
	password string,
	entity AuthProviderEntity,
) (accessToken string, refreshToken string, err error)

func (*Authentication) AuthenticateByID added in v0.5.0

func (t *Authentication) AuthenticateByID(
	ormService *datalayer.ORM,
	id uint64,
	entity AuthProviderEntity,
) (accessToken string, refreshToken string, err error)

func (*Authentication) AuthenticateEmail added in v1.0.78

func (t *Authentication) AuthenticateEmail(
	ormService *datalayer.ORM,
	email string,
	password string,
	entity EmailAuthEntity,
) (accessToken string, refreshToken string, err error)

func (*Authentication) AuthenticateOTP added in v0.3.3

func (t *Authentication) AuthenticateOTP(
	ormService *datalayer.ORM,
	phone string,
	entity OTPProviderEntity,
) (accessToken string, refreshToken string, err error)

func (*Authentication) AuthenticateOTPEmail added in v0.5.8

func (t *Authentication) AuthenticateOTPEmail(
	ormService *datalayer.ORM,
	email string,
	entity OTPProviderEntity,
) (accessToken string, refreshToken string, err error)

func (*Authentication) GenerateAndSendOTPEmail added in v0.5.8

func (t *Authentication) GenerateAndSendOTPEmail(ormService *datalayer.ORM, email, template, from, title string) (*GenerateOTPEmail, error)

func (*Authentication) GenerateTokenPair added in v0.3.1

func (t *Authentication) GenerateTokenPair(id uint64, accessKey string, ttl int) (string, error)

func (*Authentication) LogoutAllSessions added in v0.3.1

func (t *Authentication) LogoutAllSessions(ormService *datalayer.ORM, id uint64)

func (*Authentication) LogoutCurrentSession added in v0.3.1

func (t *Authentication) LogoutCurrentSession(ormService *datalayer.ORM, accessKey string)

func (*Authentication) RefreshToken

func (t *Authentication) RefreshToken(ormService *datalayer.ORM, refreshToken string) (newAccessToken string, newRefreshToken string, err error)

func (*Authentication) VerifyAccessToken

func (t *Authentication) VerifyAccessToken(ormService *datalayer.ORM, accessToken string, entity beeorm.Entity) (map[string]string, error)

func (*Authentication) VerifyOTPEmail added in v0.5.8

func (t *Authentication) VerifyOTPEmail(code string, input *GenerateOTPEmail) error

func (*Authentication) VerifySocialLogin added in v0.6.2

func (t *Authentication) VerifySocialLogin(ctx context.Context, source, token string, isAndroid bool) (*social.UserData, error)

type EmailAuthEntity added in v1.0.78

type EmailAuthEntity interface {
	beeorm.Entity
	AuthenticatableEntity
	GetPassword() string
	GetEmailFieldName() string
}

type GenerateOTP added in v0.3.3

type GenerateOTP struct {
	Mobile         string
	ExpirationTime string
	Token          string
}

type GenerateOTPEmail added in v0.5.8

type GenerateOTPEmail struct {
	Email          string
	ExpirationTime string
	Token          string
}

type OTPProviderEntity added in v0.3.3

type OTPProviderEntity interface {
	beeorm.Entity
	AuthenticatableEntity
	GetPhoneFieldName() string
	GetEmailFieldName() string
}

Jump to

Keyboard shortcuts

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