From c5385c0b06b10b88b7a5f132330d173b7719be42 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 12 Aug 2025 10:54:40 +0530 Subject: [PATCH] Added logs in login-mobile --- .../Dtos/Authentication/LoginDto.cs | 2 +- .../Controllers/AuthController.cs | 48 ++++++++++++++++--- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/Marco.Pms.Model/Dtos/Authentication/LoginDto.cs b/Marco.Pms.Model/Dtos/Authentication/LoginDto.cs index 711113b..536ac5d 100644 --- a/Marco.Pms.Model/Dtos/Authentication/LoginDto.cs +++ b/Marco.Pms.Model/Dtos/Authentication/LoginDto.cs @@ -4,7 +4,7 @@ { public string? Username { get; set; } public string? Password { get; set; } - public required string DeviceToken { get; set; } + public string? DeviceToken { get; set; } } } diff --git a/Marco.Pms.Services/Controllers/AuthController.cs b/Marco.Pms.Services/Controllers/AuthController.cs index 6d226d0..b0f86f4 100644 --- a/Marco.Pms.Services/Controllers/AuthController.cs +++ b/Marco.Pms.Services/Controllers/AuthController.cs @@ -52,18 +52,36 @@ namespace MarcoBMS.Services.Controllers { try { + var deviceToken = "ewjsd9zGTh6aS6Vg3Z_uxP:APA91bFZi1KzZdxlHUfBa_dX3PEJnDhX4R2dvFjD9Zf3WPSm957Hb53JPim7jrpjhpeOY61I9rfc11c3wpqWfW_06aSx-Yb8UfWpygV2YgZ8gbHtSku_PSQ"; var message = new Message() { - Token = "ewjsd9zGTh6aS6Vg3Z_uxP:APA91bFZi1KzZdxlHUfBa_dX3PEJnDhX4R2dvFjD9Zf3WPSm957Hb53JPim7jrpjhpeOY61I9rfc11c3wpqWfW_06aSx-Yb8UfWpygV2YgZ8gbHtSku_PSQ", + Token = deviceToken, Notification = new Notification { Title = "Hello from .NET", Body = "This is a test message" } }; - string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); - _logger.LogInfo("Firebase push notification messageId: {MessageId}", response); - // Find user by email or phone number + try + { + string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); + _logger.LogInfo("Successfully sent message: {MessageId}", response); + } + catch (FirebaseMessagingException ex) + { + _logger.LogError("Error sending push notification. : {Error}", ex.Message); + + // Check for the specific error codes that indicate an invalid token + if (ex.MessagingErrorCode == MessagingErrorCode.Unregistered || + ex.MessagingErrorCode == MessagingErrorCode.InvalidArgument) + { + _logger.LogWarning("FCM token is invalid and should be deleted: {Token}", deviceToken); + + // Add your logic here to remove the invalid token from your database + // await YourTokenService.DeleteTokenAsync(recordAttendanceDot.DeviceToken); + } + } + var user = await _context.ApplicationUsers .FirstOrDefaultAsync(u => u.Email == loginDto.Username || u.PhoneNumber == loginDto.Username); @@ -139,11 +157,29 @@ namespace MarcoBMS.Services.Controllers Body = "This is a test message" } }; - string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); - _logger.LogInfo("Firebase push notification messageId: {MessageId}", response); + try + { + string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); + _logger.LogInfo("Successfully sent message: {MessageId}", response); + } + catch (FirebaseMessagingException ex) + { + _logger.LogError("Error sending push notification. : {Error}", ex.Message); + + // Check for the specific error codes that indicate an invalid token + if (ex.MessagingErrorCode == MessagingErrorCode.Unregistered || + ex.MessagingErrorCode == MessagingErrorCode.InvalidArgument) + { + _logger.LogWarning("FCM token is invalid and should be deleted: {Token}", loginDto.DeviceToken); + + // Add your logic here to remove the invalid token from your database + // await YourTokenService.DeleteTokenAsync(recordAttendanceDot.DeviceToken); + } + } // Validate input DTO if (loginDto == null || string.IsNullOrWhiteSpace(loginDto.Username) || string.IsNullOrWhiteSpace(loginDto.Password)) { + _logger.LogWarning("Login failed: User not found for input {Username}", loginDto.Username ?? string.Empty); return BadRequest(ApiResponse.ErrorResponse("Username or password is missing.", "Invalid request", 400)); }