Skip to content

Email password authentication#2005

Draft
mfts wants to merge 1 commit intomainfrom
cursor/PM-469-email-password-authentication-5afd
Draft

Email password authentication#2005
mfts wants to merge 1 commit intomainfrom
cursor/PM-469-email-password-authentication-5afd

Conversation

@mfts
Copy link
Owner

@mfts mfts commented Jan 21, 2026

Adds email and password authentication with signup, signin, email verification, and password reset flows.

This PR implements first-class email + password authentication as outlined in Linear issue PM-469, ensuring production-safe flows with rate-limiting, secure token handling, and hashed passwords, inspired by Dub's approach.


Linear Issue: PM-469

Open in Cursor Open in Web

… and password reset

- Add passwordHash field to User model
- Create EmailVerificationToken and PasswordResetToken models
- Add Credentials provider to NextAuth configuration
- Implement signup API with password hashing and verification email
- Implement email verification flow (verify token + resend)
- Implement password reset flow (forgot password + reset password)
- Create UI pages: /signup, /verify-email, /forgot-password, /reset-password
- Update login page with password login option
- Create email templates for verification and password reset
- Add rate limiting for auth endpoints

Resolves PM-469

Co-authored-by: marcftone <[email protected]>
@cursor
Copy link

cursor bot commented Jan 21, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@vercel
Copy link

vercel bot commented Jan 21, 2026

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

Project Deployment Review Updated (UTC)
papermark Error Error Jan 21, 2026 11:57am

Request Review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 21, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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