Skip to content

Auth: request-link and verify flows#46

Open
RandyJDean wants to merge 1 commit into
07-09-auth_core_building_blocks_token_generation_repositories_clockfrom
07-09-auth_request-link_and_verify_flows
Open

Auth: request-link and verify flows#46
RandyJDean wants to merge 1 commit into
07-09-auth_core_building_blocks_token_generation_repositories_clockfrom
07-09-auth_request-link_and_verify_flows

Conversation

@RandyJDean

Copy link
Copy Markdown
Contributor
  • AuthService.requestLink: normalize email, Bucket4j rate limits
    (3/email + 10/IP per 15 min) enforced silently, invalidate prior
    tokens, email a 15-minute single-use link via the EmailSender port
    (dev profile logs the link instead of sending)
  • AuthService.verify: atomic UPDATE..RETURNING consume, shell member
    creation on first login (ON CONFLICT DO NOTHING + re-select)
  • Generic response contract: request-link always answers the same way,
    so account existence and rate limiting are unobservable
  • InvalidMagicLinkException -> 400 failure envelope

Co-Authored-By: Claude Fable 5 noreply@anthropic.com

- AuthService.requestLink: normalize email, Bucket4j rate limits
  (3/email + 10/IP per 15 min) enforced silently, invalidate prior
  tokens, email a 15-minute single-use link via the EmailSender port
  (dev profile logs the link instead of sending)
- AuthService.verify: atomic UPDATE..RETURNING consume, shell member
  creation on first login (ON CONFLICT DO NOTHING + re-select)
- Generic response contract: request-link always answers the same way,
  so account existence and rate limiting are unobservable
- InvalidMagicLinkException -> 400 failure envelope

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

RandyJDean commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

@sonarqubecloud

sonarqubecloud Bot commented Jul 9, 2026

Copy link
Copy Markdown

@RandyJDean RandyJDean marked this pull request as ready for review July 10, 2026 18:47
@RandyJDean RandyJDean requested a review from a team as a code owner July 10, 2026 18:47
@graphite-app graphite-app Bot requested review from Arshadul-Monir and arklian July 10, 2026 18:47
@graphite-app

graphite-app Bot commented Jul 10, 2026

Copy link
Copy Markdown

Graphite Automations

"Request reviewers once CI passes" took an action on this PR • (07/10/26)

2 reviewers were added to this PR based on Henry Chen's automation.

import java.util.Map;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.patinanetwork.patchats.email.EmailSender;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should put this dependency behind a client and have a standardized way of calling it.

Otherwise spaghetti will ensue with dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants