Documentation
¶
Index ¶
Constants ¶
View Source
const ( EventUserCreated = "user.created" EventUserUpdated = "user.updated" EventUserDeleted = "user.deleted" EventLoginSuccess = "auth.login.success" EventLoginFailed = "auth.login.failed" EventPasswordReset = "auth.password.reset" EventPasswordResetInitiated = "auth.password.reset.initiated" EventPasswordChanged = "auth.password.changed" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthEventData ¶
type AuthEventData struct {
UserID string `json:"user_id"`
Email string `json:"email"`
PhoneNumber string `json:"phoneNumber"`
ResetToken string `json:"reset_token,omitempty"`
IP string `json:"ip"`
UserAgent string `json:"user_agent"`
Timestamp time.Time `json:"timestamp"`
EventType string `json:"event_type"` // Type of auth event (login, password reset, etc.)
Success bool `json:"success"` // For events that can succeed/fail
}
type EventEmitter ¶
type EventEmitter interface {
EmitAuthEvent(ctx context.Context, user interfaces.User, data AuthEventData) error
EmitLoginEvent(ctx context.Context, user interfaces.User, ip, userAgent string, success bool) error
EmitPasswordEvent(ctx context.Context, user interfaces.User, ip, userAgent string, eventType string) error
EmitUserEvent(ctx context.Context, user interfaces.User, eventType string) error
EmitPasswordResetEvent(ctx context.Context, user interfaces.User) error
EmitPasswordResetInitiatedEvent(ctx context.Context, user interfaces.User, resetToken string) error
EmitPasswordChangedEvent(ctx context.Context, user interfaces.User) error
}
func NewEventEmitter ¶
func NewEventEmitter(eventBus event.Bus, topic string) EventEmitter
NewEventEmitter binds the emitter to the given Kafka topic (the auth module's config.EventsTopic). An empty topic makes EmitAuthEvent a silent no-op instead of publishing to a topic named after the event type itself (e.g. "auth.login.success"), which no broker provisions and fails with "topic or partition does not exist".
type LoginEventData ¶
type LoginFailedEventData ¶
Click to show internal directories.
Click to hide internal directories.