[♻️] 세션 스토리지 저장 로직 변경

1. API 호출 후 받아지는 데이터 반환하는 로직 추가
2. 스토리지 저장시 사용하는 변수 이름 변경
This commit is contained in:
SEAN-59 2025-06-20 17:56:58 +09:00
parent d89db8c890
commit 1e563eb576
7 changed files with 24 additions and 21 deletions

View File

@ -28,9 +28,9 @@ public class APIService(HttpClient http,
return response; return response;
} }
public async Task<(bool success,T? data)> GetConnectServerAsnyc<T>(string url) { public async Task<(bool success, string? json, T? data)> GetConnectServerAsnyc<T>(string url) {
var headerValue = await storageService.GetItemAsync("Web-AM-Connect-Key"); var headerValue = await storageService.GetItemAsync("Web-AM-Connect-Key");
if (string.IsNullOrEmpty(headerValue)) return (false, default); if (string.IsNullOrEmpty(headerValue)) return (false, null,default);
var args = new { var args = new {
url = $"{url}", url = $"{url}",
@ -55,14 +55,14 @@ public class APIService(HttpClient http,
var dataJson = dataElement.ToString(); var dataJson = dataElement.ToString();
var serialData = JsonSerializer.Deserialize<T>(dataJson, var serialData = JsonSerializer.Deserialize<T>(dataJson,
new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
Console.WriteLine("[GetConnectServerAsnyc] 사용자 데이터 Json: " + dataJson); Console.WriteLine("[GetConnectServerAsnyc] 사용자 데이터 Json: " + dataJson + dataJson.GetType());
Console.WriteLine("[GetConnectServerAsnyc] 사용자 데이터 변환: " + serialData.ToString());; Console.WriteLine("[GetConnectServerAsnyc] 사용자 데이터 변환: " + serialData.ToString());;
if (serialData != null) if (serialData != null)
{ {
var encryptedData = await secureService.EncryptAsync(dataJson); var encryptedData = await secureService.EncryptAsync(dataJson);
await storageService.SetItemAsync("USER_DATA", encryptedData); // await storageService.SetItemAsync("USER_DATA", encryptedData);
return (true, serialData); return (true, encryptedData, serialData);
} }
else else
{ {
@ -76,7 +76,7 @@ public class APIService(HttpClient http,
} }
Console.WriteLine("데이터를 찾을 수 없습니다"); Console.WriteLine("데이터를 찾을 수 없습니다");
return (false, default); return (false, null, default);
} }
} }

View File

@ -5,7 +5,7 @@ using Microsoft.JSInterop;
namespace Front.Program.ViewModels; namespace Front.Program.ViewModels;
public class UserStateService(StorageService _storageService,SecureService _secureService, APIService _APIService, public class UserStateService(StorageService _storageService, SecureService _secureService, APIService _APIService,
IJSRuntime _js) IJSRuntime _js)
{ {
public UserData UserData { get; set; } = new UserData(); public UserData UserData { get; set; } = new UserData();
@ -15,11 +15,11 @@ public class UserStateService(StorageService _storageService,SecureService _secu
public Models.SimpleAcademy[] academyItems = Array.Empty<Models.SimpleAcademy>(); public Models.SimpleAcademy[] academyItems = Array.Empty<Models.SimpleAcademy>();
public async Task<(bool success, UserData? userData)> GetUserDataFromStorageAsync() public async Task<(bool success,UserData? userData)> GetUserDataFromStorageAsync()
{ {
try try
{ {
var encUserData = await _storageService.GetItemAsync("USER_DATA"); var encUserData = await _storageService.GetItemAsync("UsDt");
if (!string.IsNullOrEmpty(encUserData)) if (!string.IsNullOrEmpty(encUserData))
{ {
@ -46,10 +46,6 @@ public class UserStateService(StorageService _storageService,SecureService _secu
} }
} }
public async Task<(bool success, UserData? userData)> GetUserDataFromServerAsync()
{
return await _APIService.GetConnectServerAsnyc<UserData>("/api/v1/in/user");
}
public async Task<bool> GetUserDataAsync() public async Task<bool> GetUserDataAsync()
{ {
@ -101,7 +97,7 @@ public class UserStateService(StorageService _storageService,SecureService _secu
{ {
try try
{ {
await _storageService.RemoveItemAsync("USER_DATA"); await _storageService.RemoveItemAsync("UsDt");
await _storageService.RemoveItemAsync("IsLogin"); await _storageService.RemoveItemAsync("IsLogin");
Console.WriteLine("사용자 데이터 삭제 성공"); Console.WriteLine("사용자 데이터 삭제 성공");
isLogin = false; isLogin = false;
@ -114,9 +110,20 @@ public class UserStateService(StorageService _storageService,SecureService _secu
} }
} }
public async Task<(bool success, UserData? userData)> GetUserDataFromServerAsync()
{
var data = await _APIService.GetConnectServerAsnyc<UserData>("/api/v1/in/user");
if (data is { success: true, json: not null })
await _storageService.SetItemAsync("UsDt", data.json);
return (data.success, data.data);
}
public async Task<(bool success, List<SimpleAcademy>? simpleAcademy)> GetAcademy() public async Task<(bool success, List<SimpleAcademy>? simpleAcademy)> GetAcademy()
{ {
return await _APIService.GetConnectServerAsnyc<List<SimpleAcademy>>("/api/v1/in/user/academy"); var data = await _APIService.GetConnectServerAsnyc<List<SimpleAcademy>>("/api/v1/in/user/academy");
if (data is { success: true, json: not null })
await _storageService.SetItemAsync("UsAcDt", data.json);
return (data.success, data.data);
} }
// //
// var headerValue = await _storageService.GetItemAsync("Web-AM-Connect-Key"); // var headerValue = await _storageService.GetItemAsync("Web-AM-Connect-Key");

View File

@ -1,6 +1,2 @@
@page "/am/main" @page "/am/main"
<h3>AcademyMain</h3> <h3>AcademyMain</h3>
@code {
}

View File

@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
namespace Front.Program.Views.Academy; namespace Front.Program.Views.Academy.Common;
public partial class LeftSideAcademy : ComponentBase public partial class LeftSideAcademy : ComponentBase
{ {

View File

@ -6,7 +6,7 @@ using System.Runtime.InteropServices.JavaScript;
using System.Text.Json; using System.Text.Json;
using Front.Program.Models; using Front.Program.Models;
namespace Front.Program.Views.Academy; namespace Front.Program.Views.Academy.Common;
public partial class TopNavAcademy : ComponentBase public partial class TopNavAcademy : ComponentBase
{ {