jwt

package
v1.35.2 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MetricTokensIssuedTotal         = "jwt_tokens_issued_total"    //nolint:gosec // false positive
	MetricTokensValidatedTotal      = "jwt_tokens_validated_total" //nolint:gosec // false positive
	MetricTokensRevokedTotal        = "jwt_tokens_revoked_total"   //nolint:gosec // false positive
	MetricIssuanceDurationSeconds   = "jwt_issuance_duration_seconds"
	MetricValidationDurationSeconds = "jwt_validation_duration_seconds"
	MetricRevocationDurationSeconds = "jwt_revocation_duration_seconds"

	StatusSuccess = "success"
	StatusError   = "error"
)

Metric constants.

Variables

View Source
var (
	ErrDisabled      = errors.New("jwt disabled")
	ErrInitFailed    = errors.New("failed to initialize jwt")
	ErrInvalidConfig = errors.New("invalid config")
	ErrInvalidParams = errors.New("invalid params")
	ErrInvalidToken  = errors.New("invalid token")
	ErrTokenRevoked  = errors.New("token revoked")
)

Functions

func Migrate

func Migrate(db *gorm.DB) error

func Module

func Module() fx.Option

Types

type Claims

type Claims struct {
	jwt.RegisteredClaims

	UserID string   `json:"user_id"`
	Scopes []string `json:"scopes"`
}

type Config

type Config struct {
	Secret string
	TTL    time.Duration
	Issuer string
}

func (Config) Validate

func (c Config) Validate() error

type Metrics

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

Metrics contains all Prometheus Metrics for the JWT module.

func NewMetrics

func NewMetrics() *Metrics

NewMetrics creates and initializes all JWT metrics.

func (*Metrics) IncrementTokensIssued

func (m *Metrics) IncrementTokensIssued(status string)

IncrementTokensIssued increments the tokens issued counter.

func (*Metrics) IncrementTokensRevoked

func (m *Metrics) IncrementTokensRevoked(status string)

IncrementTokensRevoked increments the tokens revoked counter.

func (*Metrics) IncrementTokensValidated

func (m *Metrics) IncrementTokensValidated(status string)

IncrementTokensValidated increments the tokens validated counter.

func (*Metrics) ObserveIssuance

func (m *Metrics) ObserveIssuance(f func())

ObserveIssuance observes issuance duration.

func (*Metrics) ObserveRevocation

func (m *Metrics) ObserveRevocation(f func())

ObserveRevocation observes revocation duration.

func (*Metrics) ObserveValidation

func (m *Metrics) ObserveValidation(f func())

ObserveValidation observes validation duration.

type Repository

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

func NewRepository

func NewRepository(db *gorm.DB) *Repository

func (*Repository) Insert

func (r *Repository) Insert(ctx context.Context, token *tokenModel) error

func (*Repository) IsRevoked

func (r *Repository) IsRevoked(ctx context.Context, jti string) (bool, error)

func (*Repository) Revoke

func (r *Repository) Revoke(ctx context.Context, jti, userID string) error

type Service

type Service interface {
	GenerateToken(ctx context.Context, userID string, scopes []string, ttl time.Duration) (*TokenInfo, error)
	ParseToken(ctx context.Context, token string) (*Claims, error)
	RevokeToken(ctx context.Context, userID, jti string) error
}

func New

func New(config Config, tokens *Repository, metrics *Metrics) (Service, error)

type TokenInfo

type TokenInfo struct {
	ID          string
	AccessToken string
	ExpiresAt   time.Time
}

Jump to

Keyboard shortcuts

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