Self-service forgot-password flow (AUTH01) #35
Labels
No labels
bug
deferred
documentation
enhancement
feature
infra
integration
marketing
priority:high
priority:low
priority:medium
Pro
security
UX
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frank/cookslate#35
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Status (verified 2026-05-05)
The token-based reset infrastructure is built. Only the self-service entry point is missing.
Done (commit
57f5a7d, 2026-04-23)password_reset_tokenstable with 24h expiry (migration 018)POST /users/{id}/reset-link(admin-gated) — generates tokenPOST /auth/reset-password(public) — consumes token/reset-password/:tokenpage for setting a new passwordRemaining (~2-3 hours once email infra lands)
/forgot-passwordpage with email inputPOST /auth/forgot-passwordendpoint: look up user by email, generate token (reuse existing logic), send email with reset linkDependency
Blocked on #39 (email sending infrastructure).
Launch posture
Admin-generated reset is a defensible fallback for self-hosted installs that don't have SMTP configured. Original BLOCKER tag dropped — finishing this is now
priority:mediumgated on #39.BLOCKER: Password reset flow (AUTH01)to Self-service forgot-password flow (AUTH01)Done in commit
c9391e2— verified end-to-end on production (home.cookslate.app):POST /auth/forgot-password(rate-limited 5/10min/IP, doesn't leak email existence)/forgot-passwordpage in the React frontend/loginReset link → existing
/reset-password/:tokenpage from commit57f5a7d(token consumption flow already in place from admin-generated reset feature).