This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/server/store/ticket_iface.go
2026-03-19 18:50:27 +00:00

19 lines
686 B
Go

package store
import "context"
// TicketStore manages short-lived, single-use WebSocket auth tickets.
// v0.32.0: replaces in-memory sync.Map for cross-pod ticket validation.
type TicketStore interface {
// Issue creates a single-use ticket for the given user.
// Returns the opaque ticket ID (128-bit hex).
Issue(ctx context.Context, userID string) (string, error)
// Validate atomically consumes a ticket and returns the user ID.
// Returns ("", false) if the ticket is invalid, expired, or already consumed.
Validate(ctx context.Context, ticketID string) (string, bool)
// Reap removes expired tickets. Returns the count deleted.
Reap(ctx context.Context) (int, error)
}