email response change

This commit is contained in:
Tizian.Breuch
2025-09-05 12:09:59 +02:00
parent 5619b068b1
commit 471f4a2e7a
2 changed files with 15 additions and 2 deletions

View File

@@ -104,9 +104,11 @@ namespace Webshop.Api.Controllers.Auth
if (result.Type == ServiceResultType.Success)
{
// << KORREKTUR: Feste Erfolgsmeldung senden >>
return Ok(new { Message = "Wenn ein Konto mit dieser E-Mail-Adresse existiert und noch nicht bestätigt wurde, wurde eine neue E-Mail gesendet." });
}
// Wenn die E-Mail bereits bestätigt war, ist dies ein 'BadRequest' aus Sicht des Workflows.
return BadRequest(new { Message = result.ErrorMessage });
}

View File

@@ -83,12 +83,23 @@ namespace Webshop.Application.Services.Auth
public async Task<ServiceResult> ResendEmailConfirmationAsync(string email)
{
var user = await _userManager.FindByEmailAsync(email);
if (user == null || await _userManager.IsEmailConfirmedAsync(user))
// Fall 1: Benutzer existiert nicht. Aus Sicherheitsgründen trotzdem OK zurückgeben.
if (user == null)
{
// Aus Sicherheitsgründen immer eine positive Antwort geben
return ServiceResult.Ok();
}
// Fall 2: Die E-Mail des Benutzers ist bereits bestätigt.
// Wir prüfen die Eigenschaft direkt auf dem frisch geladenen User-Objekt.
if (user.EmailConfirmed)
{
// In diesem Fall wollen wir einen Fehler an das Frontend geben,
// damit der Benutzer weiß, dass alles in Ordnung ist.
return ServiceResult.Fail(ServiceResultType.InvalidInput, "Diese E-Mail-Adresse ist bereits bestätigt.");
}
// Fall 3: Benutzer existiert, ist aber nicht bestätigt -> E-Mail senden.
await SendEmailConfirmationEmail(user);
return ServiceResult.Ok();
}