Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrInvalidToken = errors.New("invalid or expired token")
ErrInvalidToken represents error when token is invalid or expired
Functions ¶
This section is empty.
Types ¶
type Auth ¶
type Auth struct {
// contains filtered or unexported fields
}
Auth represents dependencies for auth methods
func New ¶
func New(algorithm string, privateKey *rsa.PrivateKey, claimsIssuer string, accessTokenTTL, refreshTokenTTL time.Duration) (*Auth, error)
New constructs Auth instance
func (*Auth) CreateUserClaims ¶
CreateUserClaims creates claims for user
func (*Auth) GenerateRefreshToken ¶
GenerateRefreshToken returns generated random refresh token and its expiration date
func (*Auth) GenerateToken ¶
GenerateToken generates JWT token with claims
type Claims ¶
type Claims struct {
jwt.RegisteredClaims
UserID string `json:"user_id"`
UserRole string `json:"user_role,omitempty"`
Username string `json:"username,omitempty"`
Name string `json:"name,omitempty"`
// VerificationRequired - represents requirement to verify email (true = not verified, false = verified or does not require verification)
VerificationRequired bool `json:"vrf_required"`
}
Claims represent jwt claims
type UnsubscribeTokenGenerator ¶
type UnsubscribeTokenGenerator struct {
// contains filtered or unexported fields
}
UnsubscribeTokenGenerator generates and validates unsubscribe tokens
func NewUnsubscribeTokenGenerator ¶
func NewUnsubscribeTokenGenerator(secretKey []byte) *UnsubscribeTokenGenerator
NewUnsubscribeTokenGenerator creates a new token generator with the given secret
func (*UnsubscribeTokenGenerator) GenerateToken ¶
func (g *UnsubscribeTokenGenerator) GenerateToken(email string, expiresAt time.Time) string
GenerateToken creates an unsubscribe token for the given email and expiry
func (*UnsubscribeTokenGenerator) ValidateToken ¶
func (g *UnsubscribeTokenGenerator) ValidateToken(token string) (string, error)
ValidateToken validates an unsubscribe token and returns the email if valid
Click to show internal directories.
Click to hide internal directories.