auth

package
v0.0.0-...-d5841c9 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthRepository

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

func NewAuthRepository

func NewAuthRepository(db *mongo.Client) *AuthRepository

func (AuthRepository) IsAuthorizationHeaderValid

func (a AuthRepository) IsAuthorizationHeaderValid(authorizationHeader string) (*StaffJWTClaims, error)

type JWTRepository

type JWTRepository struct {
	DBClient *mongo.Client
	// contains filtered or unexported fields
}

func NewJWTRepository

func NewJWTRepository(dbClient *mongo.Client) JWTRepository

func (JWTRepository) CreateStaffRefreshTokenSession

func (webTokens JWTRepository) CreateStaffRefreshTokenSession(ctx context.Context, staff *models.StaffMember) (string, error)

CreateStaffRefreshTokenSession creates a new refresh token session for the staff and saves in the database. This allows the option to revoke the token and also tracking usage of refresh tokens. The refresh tokens will be single use and once used, they will be invalidated.

func (JWTRepository) GenerateStaffAccessToken

func (webTokens JWTRepository) GenerateStaffAccessToken(staff *models.StaffMember) (string, error)

func (JWTRepository) VerifyStaffAccessToken

func (webTokens JWTRepository) VerifyStaffAccessToken(tokenString string) (*StaffJWTClaims, error)

type StaffJWTClaims

type StaffJWTClaims struct {
	ID            string `json:"id"`
	Name          string `json:"name"`
	Email         string `json:"email"`
	Role          string `json:"role"`
	EmailVerified bool   `json:"emailVerified"`
	jwt.StandardClaims
}

type StaffJWTRefreshTokenClaims

type StaffJWTRefreshTokenClaims struct {
	models.RefreshToken
	jwt.StandardClaims
}

type StaffRefreshTokenRepository

type StaffRefreshTokenRepository struct {
	DBClient *mongo.Client
	// contains filtered or unexported fields
}

func NewStaffRefreshToken

func NewStaffRefreshToken(client *mongo.Client) *StaffRefreshTokenRepository

func (*StaffRefreshTokenRepository) CreateStaffRefreshTokenSession

func (srt *StaffRefreshTokenRepository) CreateStaffRefreshTokenSession(ctx context.Context, staff *models.StaffMember) (*models.RefreshToken, error)

StaffRefreshTokenCreate creates a new staff refresh token and returns the StaffRefreshToken object.

func (*StaffRefreshTokenRepository) InvalidateRefreshToken

func (srt *StaffRefreshTokenRepository) InvalidateRefreshToken(ctx context.Context, refreshToken *models.RefreshToken) (*models.RefreshToken, error)

StaffRefreshTokenGetByID invalidates refresh token by adding InvalidatedAt timestamp on it and returning it.

func (*StaffRefreshTokenRepository) VerifyStaffRefreshToken

func (srt *StaffRefreshTokenRepository) VerifyStaffRefreshToken(ctx context.Context, userID, refreshTokenID string) (*models.RefreshToken, error)

StaffRefreshTokenGetByID returns a staff refresh token by ID.

Jump to

Keyboard shortcuts

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