coder13 / coder13/LetsCube

Rate-limit authentication endpoints

Open
#239 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
30
Forks
9
PR merge metrics
No merged PRs in 30d

Description

Follow-up slice of #227.

Apply the established API rate-limit policy to the authentication router, which is outside the existing /api limiter.

Scope:

  • protect authentication code exchange and logout routes consistently;
  • add a focused regression test for requests exceeding the configured IP window;
  • retain the current response contract and CSRF protection;
  • do not add, inspect, store, or search email data.

Acceptance criteria:

  • repeated authentication-route requests receive the standard 429 response;
  • normal sign-in and logout behavior still works within the limit;
  • server tests and CodeQL pass.

Production rollout validation remains part of #176.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the established API rate-limit policy from follow-up issue #227 and locating the authentication router, especially the code exchange and logout routes. Add focused server-test coverage for requests exceeding the configured IP window, then verify the standard 429 response, existing sign-in/logout behavior, CSRF protection, and CodeQL results without changing the response contract.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, nodejs
Domain
api, authentication, backend, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.