Documentation
¶
Index ¶
- Constants
- Variables
- func Migrate(db *gorm.DB) error
- func Module() fx.Option
- type Claims
- type Config
- type Metrics
- func (m *Metrics) IncrementTokensIssued(status string)
- func (m *Metrics) IncrementTokensRefreshed(status string)
- func (m *Metrics) IncrementTokensRevoked(status string, value ...int)
- func (m *Metrics) IncrementTokensValidated(status string)
- func (m *Metrics) ObserveIssuance(f func())
- func (m *Metrics) ObserveRefresh(f func())
- func (m *Metrics) ObserveRevocation(f func())
- func (m *Metrics) ObserveValidation(f func())
- type Options
- type RefreshClaims
- type Repository
- func (r *Repository) Insert(ctx context.Context, tokens ...tokenModel) error
- func (r *Repository) IsRevoked(ctx context.Context, jti string) (bool, error)
- func (r *Repository) Revoke(ctx context.Context, jti, userID string) error
- func (r *Repository) RevokeByUser(ctx context.Context, userID string) (int64, error)
- func (r *Repository) RotateRefreshToken(ctx context.Context, currentJTI string, nextRefresh, nextAccess tokenModel) error
- type Service
- type TokenInfo
- type TokenPairInfo
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 MetricTokensRefreshedTotal = "jwt_tokens_refreshed_total" //nolint:gosec // false positive MetricIssuanceDurationSeconds = "jwt_issuance_duration_seconds" MetricValidationDurationSeconds = "jwt_validation_duration_seconds" MetricRevocationDurationSeconds = "jwt_revocation_duration_seconds" MetricRefreshDurationSeconds = "jwt_refresh_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") ErrInvalidTokenUse = errors.New("invalid token use") ErrTokenRevoked = errors.New("token revoked") ErrTokenReplay = errors.New("token replay detected") )
Functions ¶
Types ¶
type Claims ¶
type Claims struct {
jwt.RegisteredClaims
UserID string `json:"user_id"`
Scopes []string `json:"scopes"`
}
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
Metrics contains all Prometheus Metrics for the JWT module.
func (*Metrics) IncrementTokensIssued ¶
IncrementTokensIssued increments the tokens issued counter.
func (*Metrics) IncrementTokensRefreshed ¶ added in v1.36.0
IncrementTokensRefreshed increments the tokens refreshed counter.
func (*Metrics) IncrementTokensRevoked ¶
IncrementTokensRevoked increments the tokens revoked counter.
func (*Metrics) IncrementTokensValidated ¶
IncrementTokensValidated increments the tokens validated counter.
func (*Metrics) ObserveIssuance ¶
func (m *Metrics) ObserveIssuance(f func())
ObserveIssuance observes issuance duration.
func (*Metrics) ObserveRefresh ¶ added in v1.36.0
func (m *Metrics) ObserveRefresh(f func())
ObserveRefresh observes refresh 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 RefreshClaims ¶ added in v1.36.0
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, tokens ...tokenModel) error
func (*Repository) Revoke ¶
func (r *Repository) Revoke(ctx context.Context, jti, userID string) error
func (*Repository) RevokeByUser ¶ added in v1.36.1
func (*Repository) RotateRefreshToken ¶ added in v1.36.0
func (r *Repository) RotateRefreshToken( ctx context.Context, currentJTI string, nextRefresh, nextAccess tokenModel, ) error
type Service ¶
type Service interface {
GenerateTokenPair(
ctx context.Context,
userID string,
scopes []string,
accessTTL time.Duration,
) (*TokenPairInfo, error)
RefreshTokenPair(ctx context.Context, refreshToken string) (*TokenPairInfo, error)
ParseToken(ctx context.Context, token string) (*Claims, error)
RevokeToken(ctx context.Context, userID, jti string) error
RevokeByUser(ctx context.Context, userID string) error
}
type TokenPairInfo ¶ added in v1.36.0
Click to show internal directories.
Click to hide internal directories.