Logout Api call

This commit is contained in:
Adam 2024-05-20 21:52:06 +02:00
parent 43d9394ebb
commit 9efe9ad250
9 changed files with 84 additions and 10 deletions

View File

@ -255,6 +255,34 @@ namespace TIAMMobileApp.Services
return isTokenRefreshed;
}
public async Task<bool> Logout(string refreshToken)
{
_logger.Info("Logout() called");
var url = $"{Setting.ApiBaseUrl}/{APIUrls.LogoutUser}";
bool result = false;
var response = await http.PostAsJsonAsync(url, RefreshToken);
if (response.IsSuccessStatusCode)
{
string resultMessage = await response.Content.ReadAsStringAsync();
_logger.Detail($"Logout response: {resultMessage}");
if (resultMessage == "OK")
{
result = true;
}
else
{
result = false;
}
}
else
{
result = false;
}
_logger.Detail($"Logout: {result}");
return result;
}
//public Task<Dictionary<int, string>> GetUserRolesAsync(UserModel userModel)
//{

View File

@ -126,6 +126,9 @@
private void SignOut()
{
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
UserDataService.Logout(userBasicDetail.RefreshToken);
SecureStorageHandler.ClearAllSecureStorageAsync();
sessionService.User = null;
sessionService.IsAuthenticated = false;

View File

@ -119,7 +119,7 @@ namespace TIAMSharedUI.Pages
var user = await userDataService.IsLoggedInAsync(myId);
SaveToSessionInfo(user);
user.UserType = UserType.Admin;
navManager.NavigateTo("index");
navManager.NavigateTo("/");
}
}

View File

@ -241,7 +241,7 @@
void SendMail(Transfer item)
{
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
_messageWizardModel.ReceiverId = item.UserId;
_messageWizardModel.ContextId = item.Id;
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;

View File

@ -14,6 +14,8 @@ using TIAMSharedUI.Resources;
using TIAMWebApp.Shared.Application.Interfaces;
using TIAMWebApp.Shared.Application.Utility;
using TIAMSharedUI.Pages.Components;
using TIAMWebApp.Shared.Application.Models.ClientSide;
using Newtonsoft.Json;
namespace TIAMSharedUI.Shared.Components
{
@ -36,8 +38,8 @@ namespace TIAMSharedUI.Shared.Components
[Inject]
public IComponentUpdateService componentUpdateService { get; set; }
[Inject]
private IUserDataService UserDataService { get; set; }
private bool enableLogin = true;
private bool enableEvents = false;
@ -46,7 +48,6 @@ namespace TIAMSharedUI.Shared.Components
private bool enableApi = true;
private bool enableChat = true;
private bool collapseNavMenu = true;
private bool myUser = false;
private bool hasProperty = false;
@ -78,11 +79,21 @@ namespace TIAMSharedUI.Shared.Components
}
private void SignOut()
private async Task SignOut()
{
SecureStorageHandler.ClearAllSecureStorageAsync();
bool serverResult;
string userDetailsStr = await SecureStorageHandler.GetFromSecureStorageAsync(nameof(Setting.UserBasicDetails));
if (!string.IsNullOrEmpty(userDetailsStr))
{
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
serverResult = await UserDataService.Logout(userBasicDetail.RefreshToken);
}
await SecureStorageHandler.ClearAllSecureStorageAsync();
sessionService.User = null;
sessionService.IsAuthenticated = false;
navigationManager.NavigateTo("/");
myUser = false;
}
private void ThrowSomeError()

View File

@ -56,7 +56,7 @@
private ILogger _logger;
public PopupMessageBox PopupMessageBox { get; private set; } = default!;
protected override void OnInitialized()
{

View File

@ -266,6 +266,34 @@ namespace TIAMWebApp.Client.Services
return isTokenRefreshed;
}
public async Task<bool> Logout(string refreshToken)
{
_logger.Info("Logout() called");
var url = $"{Setting.ApiBaseUrl}/{APIUrls.LogoutUser}";
bool result = false;
var response = await http.PostAsJsonAsync(url, refreshToken);
if (response.IsSuccessStatusCode)
{
string resultMessage = await response.Content.ReadAsStringAsync();
_logger.Detail($"Logout response: {resultMessage}");
if(resultMessage == "OK")
{
result = true;
}
else
{
result = false;
}
}
else
{
result = false;
}
_logger.Detail($"Logout: {result}");
return result;
}
/*public Task<Dictionary<int, string>> GetUserRolesAsync(UserModel userModel)
{

View File

@ -76,12 +76,14 @@ namespace TIAMWebApp.Server.Controllers
[AllowAnonymous]
[HttpPost]
[Route(APIUrls.LogoutUserRouteName)]
public IActionResult LogoutUser()
public async Task<IActionResult> LogoutUser([FromBody] string refreshToken)
{
_logger.Info(@"LogoutUser called");
_logger.Info($"refreshtoken: {refreshToken}");
_loginService.Logout();
//TODO: Implementálni a Logout-ot kliens és szerver oldalon is! - J.
return new RedirectToActionResult(APIUrls.BaseUrlWithSlashAndVersion, null, null);
return Ok("OK");
}
[AllowAnonymous]

View File

@ -31,5 +31,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces
public Task<UserModelDtoDetail?> GetUserDetailByIdAsync(Guid id);
public Task<UserModelDto?> GetUserByEmailAsync(string email);
Task<bool> RefreshToken();
public Task<bool> Logout(string refreshToken);
}
}