From 5538c3ae25390691db7356319fea68d967aca68e Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 19 Aug 2025 15:25:20 +0530 Subject: [PATCH] Removing the FCM Token if employee is logout --- Marco.Pms.Services/Controllers/AuthController.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Marco.Pms.Services/Controllers/AuthController.cs b/Marco.Pms.Services/Controllers/AuthController.cs index 5a8305b..8f96f56 100644 --- a/Marco.Pms.Services/Controllers/AuthController.cs +++ b/Marco.Pms.Services/Controllers/AuthController.cs @@ -33,7 +33,7 @@ namespace MarcoBMS.Services.Controllers private readonly EmployeeHelper _employeeHelper; private readonly ILoggingService _logger; private readonly IFirebaseService _firebase; - //string tenentId = "1"; + private readonly Guid tenentId; public AuthController(UserManager userManager, ApplicationDbContext context, JwtSettings jwtSettings, RefreshTokenService refreshTokenService, IEmailSender emailSender, IConfiguration configuration, EmployeeHelper employeeHelper, UserHelper userHelper, ILoggingService logger, IFirebaseService firebase) { @@ -47,6 +47,7 @@ namespace MarcoBMS.Services.Controllers _userHelper = userHelper; _logger = logger; _firebase = firebase; + tenentId = userHelper.GetTenantId(); } [HttpPost("login")] @@ -365,6 +366,7 @@ namespace MarcoBMS.Services.Controllers [HttpPost("logout")] public async Task Logout([FromBody] LogoutDto logoutDto) { + var loggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); if (string.IsNullOrWhiteSpace(logoutDto.RefreshToken)) { _logger.LogWarning("Logout failed: Refresh token is missing"); @@ -388,7 +390,16 @@ namespace MarcoBMS.Services.Controllers await _refreshTokenService.BlacklistJwtTokenAsync(jwtToken); _logger.LogInfo("JWT access token blacklisted successfully"); } - + string? origin = HttpContext.Request.Headers["Origin"].FirstOrDefault(); + if (string.IsNullOrWhiteSpace(origin)) + { + var fcmTokenMapping = await _context.FCMTokenMappings.FirstOrDefaultAsync(ft => ft.EmployeeId == loggedInEmployee.Id && ft.TenantId == tenentId); + if (fcmTokenMapping != null) + { + _context.FCMTokenMappings.Remove(fcmTokenMapping); + await _context.SaveChangesAsync(); + } + } _logger.LogInfo("User logged out successfully"); return Ok(ApiResponse.SuccessResponse(new { }, "Logged out successfully", 200)); }