Removing the FCM Token if employee is logout
This commit is contained in:
parent
38450dce70
commit
5538c3ae25
@ -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<ApplicationUser> 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<IActionResult> 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<object>.SuccessResponse(new { }, "Logged out successfully", 200));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user