feat(auth): implement password reset functionality

- Added new endpoints for requesting and resetting passwords in the authController.
- Updated User model to include resetToken and resetTokenExpires fields for managing password reset requests.
- Enhanced emailService to send password reset emails with secure links.
- Updated frontend routes and views to support password reset flow, including new ForgotPassword and ResetPassword components.
- Improved internationalization files with new translation keys for password reset messages across multiple languages.
This commit is contained in:
Torsten Schulz (local)
2026-02-09 08:40:27 +01:00
parent 76f1b1a12f
commit e22e3257ef
25 changed files with 722 additions and 22 deletions

View File

@@ -1,4 +1,4 @@
import { register, activateUser, login, logout } from '../services/authService.js';
import { register, activateUser, login, logout, requestPasswordReset, resetPassword } from '../services/authService.js';
const registerUser = async (req, res, next) => {
try {
@@ -45,4 +45,24 @@ const logoutUser = async (req, res, next) => {
}
};
export { registerUser, activate, loginUser, logoutUser };
const forgotPassword = async (req, res, next) => {
try {
const { email } = req.body;
const result = await requestPasswordReset(email);
res.status(200).json(result);
} catch (error) {
next(error);
}
};
const resetUserPassword = async (req, res, next) => {
try {
const { token, password } = req.body;
const result = await resetPassword(token, password);
res.status(200).json(result);
} catch (error) {
next(error);
}
};
export { registerUser, activate, loginUser, logoutUser, forgotPassword, resetUserPassword };