- AuthService mit allen Methoden (register, login, forgotPassword, resetPassword, logout) - ErrorHandler für zentrale Fehlerbehandlung - authController.js auf neue Clean Code Architektur umgestellt - Alle Authentifizierungsendpunkte verwenden jetzt Service Layer Pattern
59 lines
1.8 KiB
JavaScript
59 lines
1.8 KiB
JavaScript
const AuthService = require('../services/AuthService');
|
|
const ErrorHandler = require('../utils/ErrorHandler');
|
|
|
|
/**
|
|
* Controller für Authentifizierungsendpunkte
|
|
*/
|
|
class AuthController {
|
|
/**
|
|
* Benutzerregistrierung
|
|
*/
|
|
static register = ErrorHandler.asyncHandler(async (req, res) => {
|
|
const result = await AuthService.register(req.body);
|
|
ErrorHandler.successResponse(res, result, result.message, 201);
|
|
});
|
|
|
|
/**
|
|
* Benutzeranmeldung
|
|
*/
|
|
static login = ErrorHandler.asyncHandler(async (req, res) => {
|
|
const { email, password } = req.body;
|
|
const result = await AuthService.login(email, password);
|
|
ErrorHandler.successResponse(res, result, result.message);
|
|
});
|
|
|
|
/**
|
|
* Passwort vergessen
|
|
*/
|
|
static forgotPassword = ErrorHandler.asyncHandler(async (req, res) => {
|
|
const result = await AuthService.forgotPassword(req.body.email);
|
|
ErrorHandler.successResponse(res, result, result.message);
|
|
});
|
|
|
|
/**
|
|
* Passwort zurücksetzen
|
|
*/
|
|
static resetPassword = ErrorHandler.asyncHandler(async (req, res) => {
|
|
const result = await AuthService.resetPassword(req.body.token, req.body.password);
|
|
ErrorHandler.successResponse(res, result, result.message);
|
|
});
|
|
|
|
/**
|
|
* Benutzerabmeldung
|
|
*/
|
|
static logout = ErrorHandler.asyncHandler(async (req, res) => {
|
|
const authHeader = req.header('Authorization');
|
|
const token = authHeader ? authHeader.replace('Bearer ', '') : null;
|
|
const result = await AuthService.logout(token);
|
|
ErrorHandler.successResponse(res, result, result.message);
|
|
});
|
|
}
|
|
|
|
// Export der statischen Methoden für die Routen
|
|
module.exports = {
|
|
register: AuthController.register,
|
|
login: AuthController.login,
|
|
forgotPassword: AuthController.forgotPassword,
|
|
resetPassword: AuthController.resetPassword,
|
|
logout: AuthController.logout
|
|
}; |