Forgot Password
Password reset flow patterns.
Basic Reset Form
<div class="min-h-screen flex items-center justify-center">
<div class="w-full max-w-sm p-8">
<h1 class="text-2xl font-bold text-center">Reset your password</h1>
<p class="mt-2 text-center text-muted-foreground">
Enter your email and we'll send you a reset link
</p>
<form class="mt-8 space-y-4">
<div>
<label class="text-sm font-medium">Email</label>
<input type="email" class="mt-1 w-full rounded-lg border px-3 py-2" />
</div>
<button type="submit" class="w-full btn-primary">Send reset link</button>
</form>
<p class="mt-6 text-center text-sm text-muted-foreground">
Remember your password? <a href="/login" class="text-primary">Sign in</a>
</p>
</div>
</div>Flow Steps
- Request reset - User enters email
- Confirm sent - Show success message
- Email link - Secure, time-limited link
- New password - Form to set new password
- Confirmation - Success + redirect to login
Best Practices
- Don't reveal existence - Same message whether email exists or not
- Rate limit - Prevent abuse of reset endpoint
- Expire links - 1 hour max for security
- Single use - Invalidate link after use
- Clear next steps - Tell user what to expect