225b53bfa7f7a8aa565d47164a66301b756c8d13
Every request presenting an expired token wrote a token.expired_use audit row, and RateLimitTokens only applies once a session exists, so a rejected token was never rate-limited. A looping job with one expired token could write an unbounded number of audit rows, drowning the real audit trail. services.ShouldLogExpiredTokenUse now dedupes to at most one token.expired_use record per token per minute, mirroring the throttle TouchAPIToken already uses for last-used. It lives in services rather than auth because the storage concern belongs beside the token's other storage-backed state. The first use per window is still recorded, which is what makes a forgotten job visible.
Description
No description provided
9.7 MiB
Languages
JavaScript
63.9%
Go
19.3%
TypeScript
16.6%