SPMS_API/SPMS.Infrastructure/Services/ConsoleEmailService.cs
SEAN 3acae06ed1 improvement: 임시 비밀번호 발급 및 강제변경 플로우 구현 (#207)
- Admin 엔티티에 MustChangePassword, TempPasswordIssuedAt 필드 추가
- POST /v1/in/account/password/temp 엔드포인트 추가
- 임시비밀번호 생성(12자, 영대소+숫자+특수) 및 메일 발송
- 로그인 시 CHANGE_PASSWORD 분기 추가 (VERIFY_EMAIL > CHANGE_PASSWORD > GO_DASHBOARD)
- 비밀번호 변경 시 MustChangePassword 플래그 자동 해제
- LoginResponseDto에 must_change_password 필드 추가
- EF Core 마이그레이션 생성 및 적용

Closes #207
2026-02-25 10:51:37 +09:00

47 lines
1.4 KiB
C#

using Microsoft.Extensions.Logging;
using SPMS.Application.Interfaces;
namespace SPMS.Infrastructure.Services;
public class ConsoleEmailService : IEmailService
{
private readonly ILogger<ConsoleEmailService> _logger;
public ConsoleEmailService(ILogger<ConsoleEmailService> logger)
{
_logger = logger;
}
public Task SendVerificationCodeAsync(string email, string code)
{
_logger.LogInformation(
"[EMAIL] 이메일 인증 코드 발송 → To: {Email}, Code: {Code}",
email, code);
return Task.CompletedTask;
}
public Task SendPasswordResetTokenAsync(string email, string token)
{
_logger.LogInformation(
"[EMAIL] 비밀번호 재설정 토큰 발송 → To: {Email}, Token: {Token}",
email, token);
return Task.CompletedTask;
}
public Task SendPasswordSetupTokenAsync(string email, string token)
{
_logger.LogInformation(
"[EMAIL] 비밀번호 설정 토큰 발송 → To: {Email}, Token: {Token}",
email, token);
return Task.CompletedTask;
}
public Task SendTempPasswordAsync(string email, string tempPassword)
{
_logger.LogInformation(
"[EMAIL] 임시 비밀번호 발송 → To: {Email}, TempPassword: {TempPassword}",
email, tempPassword);
return Task.CompletedTask;
}
}