Add a secure password reset functionality to the application. This feature will allow users to reset their passwords in case they forget them. It will include a database migration for existing passwords, secure salt generation, and necessary workflow integration for resetting and storing new passwords.
Acceptance Criteria:
Password Reset Workflow:
Database Migration:
Salt Generation:
Password Storage:
Security Considerations:
Implement token expiration to limit the time frame for password reset.
Validate password strength for new passwords (minimum 8 characters, 1 uppercase letter, 1 number).
Testing:
- Write unit tests for the password reset endpoints and workflow.
- Test the migration script to ensure it works seamlessly with existing data.
Technical Notes:
- Use golang.org/x/crypto/bcrypt for hashing.
- Consider crypto/rand for secure salt generation.
- Use environment variables to configure token expiration time and other sensitive settings.
- Follow project standards for error handling, logging, and code structure.
Priority: High
Labels: Security, Authentication, Backend, Go
Add a secure password reset functionality to the application. This feature will allow users to reset their passwords in case they forget them. It will include a database migration for existing passwords, secure salt generation, and necessary workflow integration for resetting and storing new passwords.
Acceptance Criteria:
Password Reset Workflow:
Database Migration:
Salt Generation:
Password Storage:
Security Considerations:
Implement token expiration to limit the time frame for password reset.
Validate password strength for new passwords (minimum 8 characters, 1 uppercase letter, 1 number).
Testing:
Technical Notes:
Priority: High
Labels: Security, Authentication, Backend, Go