sveltekit-rate-limiter
Version:
A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.
21 lines (20 loc) • 527 B
JavaScript
export class CloudflareIPRateLimiter {
rate;
constructor(rate) {
this.rate = rate;
}
async hash(event) {
return (event.request.headers.get('cf-connecting-ip') || event.getClientAddress());
}
}
export class CloudflareIPUARateLimiter extends CloudflareIPRateLimiter {
constructor(rate) {
super(rate);
}
async hash(event) {
const ua = event.request.headers.get('user-agent');
if (!ua)
return false;
return super.hash(event) + ua;
}
}