Skip to content

Support reset password with email#39

Merged
dereknex merged 6 commits intomainfrom
feat/issue-21-forgot-reset-password
Feb 12, 2026
Merged

Support reset password with email#39
dereknex merged 6 commits intomainfrom
feat/issue-21-forgot-reset-password

Conversation

@dereknex
Copy link
Contributor

Implements forgot/reset password flow via email.

  • Adds /forgot-password and /reset-password pages + forms
  • Adds API routes POST /api/auth/forgot-password and POST /api/auth/reset-password
  • Reset tokens expire after 1 hour, one-time use (verification row deleted on consume)
  • Stores hashed reset tokens in DB (sha256)
  • Adds rate limiting (forgot: 5/hour per IP+email; reset: 30/10min per IP)

Closes #21

@changeset-bot
Copy link

changeset-bot bot commented Feb 12, 2026

⚠️ No Changeset found

Latest commit: 989a66e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link

vercel bot commented Feb 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
echo Ready Ready Preview, Comment Feb 12, 2026 0:11am

Implement internationalization for password reset emails with locale detection from cookies and Accept-Language headers. Add helper functions to resolve locale and origin from request headers. Extract email templates to locale JSON files (en, jp, zh-CN) with support for subject, greeting, body, button text, and warning messages. Update forgot-password route to use localized email content and improve error handling in the form component.
@dereknex dereknex merged commit d338cd2 into main Feb 12, 2026
3 checks passed
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.

support reset password with email

1 participant