forked from AcaMate/AcaMate_Web
[♻️] 로그인 저장데이터 문제 발생시 로직
1. / 로 보내 버리기
This commit is contained in:
parent
1e563eb576
commit
250aac4b29
|
@ -25,11 +25,27 @@ public partial class MainLayout : LayoutComponentBase, IDisposable
|
||||||
// protected bool isIntro => Navigation.ToBaseRelativePath(Navigation.Uri).Equals("am/intro", StringComparison.OrdinalIgnoreCase);
|
// protected bool isIntro => Navigation.ToBaseRelativePath(Navigation.Uri).Equals("am/intro", StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
|
||||||
protected override void OnInitialized()
|
// protected override void OnInitialized()
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
LoadingService.OnChange += StateHasChanged;
|
LoadingService.OnChange += StateHasChanged;
|
||||||
Navigation.LocationChanged += HandleLocationChanged;
|
Navigation.LocationChanged += HandleLocationChanged;
|
||||||
HandleLocationChanged(this, new LocationChangedEventArgs(Navigation.Uri, false));
|
HandleLocationChanged(this, new LocationChangedEventArgs(Navigation.Uri, false));
|
||||||
|
if (isAcademy)
|
||||||
|
{
|
||||||
|
if(!UserStateService.isLogin || UserStateService.UserData == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("로그인 상태가 아닙니다. 초기로 돌립니다.");
|
||||||
|
if (isIntro)
|
||||||
|
{
|
||||||
|
} //await UserStateService.ClearUserStateAsnyc();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await UserStateService.ClearUserStateAsnyc();
|
||||||
|
Navigation.NavigateTo("/");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 페이지의 URL이 변경될 때마다 실행되는 이벤트 핸들러
|
// 페이지의 URL이 변경될 때마다 실행되는 이벤트 핸들러
|
||||||
|
|
|
@ -93,23 +93,31 @@ public class UserStateService(StorageService _storageService, SecureService _sec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task ClearUserData()
|
public async Task ClearUserStateAsnyc()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await _storageService.RemoveItemAsync("UsDt");
|
string[] keys = { "UsDt", "IsLogin", "UsAcDt" };
|
||||||
await _storageService.RemoveItemAsync("IsLogin");
|
foreach (var key in keys)
|
||||||
Console.WriteLine("사용자 데이터 삭제 성공");
|
{
|
||||||
isLogin = false;
|
var remove = await _storageService.RemoveItemAsync(key);
|
||||||
// return true;
|
Console.WriteLine("사용자 데이터 삭제" + (remove ? "성공 :" : "실패 :") + key);
|
||||||
|
}
|
||||||
|
ClearStateData();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"사용자 데이터 삭제 중 오류: {ex.Message}");
|
Console.WriteLine($"사용자 데이터 삭제 중 오류: {ex.Message}");
|
||||||
// return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ClearStateData()
|
||||||
|
{
|
||||||
|
isLogin = false;
|
||||||
|
UserData = new UserData();
|
||||||
|
academyItems = Array.Empty<Models.SimpleAcademy>();
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<(bool success, UserData? userData)> GetUserDataFromServerAsync()
|
public async Task<(bool success, UserData? userData)> GetUserDataFromServerAsync()
|
||||||
{
|
{
|
||||||
var data = await _APIService.GetConnectServerAsnyc<UserData>("/api/v1/in/user");
|
var data = await _APIService.GetConnectServerAsnyc<UserData>("/api/v1/in/user");
|
||||||
|
@ -125,33 +133,4 @@ public class UserStateService(StorageService _storageService, SecureService _sec
|
||||||
await _storageService.SetItemAsync("UsAcDt", data.json);
|
await _storageService.SetItemAsync("UsAcDt", data.json);
|
||||||
return (data.success, data.data);
|
return (data.success, data.data);
|
||||||
}
|
}
|
||||||
//
|
}
|
||||||
// var headerValue = await _storageService.GetItemAsync("Web-AM-Connect-Key");
|
|
||||||
// if (string.IsNullOrEmpty(headerValue)) return (false, null);
|
|
||||||
//
|
|
||||||
// var args = new {
|
|
||||||
// url = "/api/v1/in/user/academy",
|
|
||||||
// method = "GET",
|
|
||||||
// headerKey = "Web-AM-Connect-Key",
|
|
||||||
// headerValue = headerValue,
|
|
||||||
// token = "VO00"
|
|
||||||
// };
|
|
||||||
//
|
|
||||||
// var response = await _js.InvokeAsync<JsonElement>(
|
|
||||||
// "fetchWithHeaderAndReturnUrl",
|
|
||||||
// args
|
|
||||||
// );
|
|
||||||
//
|
|
||||||
// Console.WriteLine($"JSON 응답: {response.ToString()}");
|
|
||||||
//
|
|
||||||
// if (response.TryGetProperty("data", out var dataElement))
|
|
||||||
// {
|
|
||||||
// try
|
|
||||||
// {
|
|
||||||
// // 전체 데이터 암호화 저장
|
|
||||||
// var userDataJson = dataElement.ToString();
|
|
||||||
// var userData = JsonSerializer.Deserialize<UserData>(userDataJson,
|
|
||||||
// new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
|
@ -16,9 +16,6 @@ public partial class AcademyIntro : ComponentBase, IDisposable
|
||||||
|
|
||||||
private bool _isProcessing = false;
|
private bool _isProcessing = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected override async void OnInitialized()
|
protected override async void OnInitialized()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="flex items-center justify-between whitespace-nowrap border-b border-solid border-b-[#f0f2f5] h-[72px] bg-white">
|
<div class="flex items-center justify-between whitespace-nowrap border-b border-solid border-b-[#f0f2f5] h-[72px] w-full bg-white">
|
||||||
<div id="AcademyDrop" class="relative flex items-center gap-4 text-[#111418] ml-4">
|
<div id="AcademyDrop" class="relative flex items-center gap-4 text-[#111418] flex-1">
|
||||||
<button class="flex items-center gap-2 hover:text-blue-600" @onclick="ToggleAcademyDropdown">
|
<button class="flex items-center gap-2 hover:text-blue-600" @onclick="ToggleAcademyDropdown">
|
||||||
<h2 class="hidden md:block text-text-title text-lg font-bold leading-tight tracking-[-0.015em]">AcaMate</h2>
|
<h2 class="hidden md:block text-text-title text-lg font-bold leading-tight tracking-[-0.015em]">AcaMate</h2>
|
||||||
<svg class="w-4 h-4 transition-transform duration-200 @(isAcademyDropdownOpen ? "rotate-180" : "")"
|
<svg class="w-4 h-4 transition-transform duration-200 @(isAcademyDropdownOpen ? "rotate-180" : "")"
|
||||||
|
|
|
@ -47,7 +47,7 @@ public partial class TopProjectNav : ComponentBase
|
||||||
|
|
||||||
public async Task OnClickLogout()
|
public async Task OnClickLogout()
|
||||||
{
|
{
|
||||||
await UserStateService.ClearUserData();
|
await UserStateService.ClearUserStateAsnyc();
|
||||||
//
|
//
|
||||||
// if (await UserViewModel.ClearUserData())
|
// if (await UserViewModel.ClearUserData())
|
||||||
// {
|
// {
|
||||||
|
|
|
@ -15,5 +15,6 @@
|
||||||
@using Front.Program.Views.Project.ConnectUser
|
@using Front.Program.Views.Project.ConnectUser
|
||||||
|
|
||||||
@using Front.Program.Views.Academy
|
@using Front.Program.Views.Academy
|
||||||
|
@using Front.Program.Views.Academy.Common
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user