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 override void OnInitialized()
|
||||
// protected override void OnInitialized()
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
LoadingService.OnChange += StateHasChanged;
|
||||
Navigation.LocationChanged += HandleLocationChanged;
|
||||
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이 변경될 때마다 실행되는 이벤트 핸들러
|
||||
|
|
|
@ -93,23 +93,31 @@ public class UserStateService(StorageService _storageService, SecureService _sec
|
|||
}
|
||||
}
|
||||
|
||||
public async Task ClearUserData()
|
||||
public async Task ClearUserStateAsnyc()
|
||||
{
|
||||
try
|
||||
{
|
||||
await _storageService.RemoveItemAsync("UsDt");
|
||||
await _storageService.RemoveItemAsync("IsLogin");
|
||||
Console.WriteLine("사용자 데이터 삭제 성공");
|
||||
isLogin = false;
|
||||
// return true;
|
||||
string[] keys = { "UsDt", "IsLogin", "UsAcDt" };
|
||||
foreach (var key in keys)
|
||||
{
|
||||
var remove = await _storageService.RemoveItemAsync(key);
|
||||
Console.WriteLine("사용자 데이터 삭제" + (remove ? "성공 :" : "실패 :") + key);
|
||||
}
|
||||
ClearStateData();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
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()
|
||||
{
|
||||
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);
|
||||
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;
|
||||
|
||||
|
||||
|
||||
|
||||
protected override async void OnInitialized()
|
||||
{
|
||||
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 id="AcademyDrop" class="relative flex items-center gap-4 text-[#111418] ml-4">
|
||||
<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] flex-1">
|
||||
<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>
|
||||
<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()
|
||||
{
|
||||
await UserStateService.ClearUserData();
|
||||
await UserStateService.ClearUserStateAsnyc();
|
||||
//
|
||||
// if (await UserViewModel.ClearUserData())
|
||||
// {
|
||||
|
|
|
@ -15,5 +15,6 @@
|
|||
@using Front.Program.Views.Project.ConnectUser
|
||||
|
||||
@using Front.Program.Views.Academy
|
||||
@using Front.Program.Views.Academy.Common
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user