로그인 유지와 마지막 접속 기록 개선

This commit is contained in:
2026-06-24 09:56:25 +09:00
parent 5a56ddcede
commit edf48e53a5
16 changed files with 72 additions and 21 deletions

View File

@@ -66,7 +66,7 @@ const UaDeckApi = (() => {
* @returns {string|null}
*/
function getToken() {
return localStorage.getItem(TOKEN_KEY);
return localStorage.getItem(TOKEN_KEY) || sessionStorage.getItem(TOKEN_KEY);
}
/**
@@ -75,7 +75,8 @@ const UaDeckApi = (() => {
*/
function getCachedUser() {
try {
const raw = localStorage.getItem(USER_KEY);
const storage = localStorage.getItem(TOKEN_KEY) ? localStorage : sessionStorage;
const raw = storage.getItem(USER_KEY);
return raw ? JSON.parse(raw) : null;
} catch {
return null;
@@ -86,10 +87,18 @@ const UaDeckApi = (() => {
* 인증 정보 저장
* @param {string} token
* @param {object} user
* @param {boolean|null} [remember=null] 로그인 유지 여부. null이면 현재 저장 위치를 유지한다.
*/
function saveAuth(token, user) {
localStorage.setItem(TOKEN_KEY, token);
localStorage.setItem(USER_KEY, JSON.stringify(user));
function saveAuth(token, user, remember = null) {
const shouldRemember =
remember === null ? Boolean(localStorage.getItem(TOKEN_KEY)) || !sessionStorage.getItem(TOKEN_KEY) : remember;
const storage = shouldRemember ? localStorage : sessionStorage;
const otherStorage = shouldRemember ? sessionStorage : localStorage;
storage.setItem(TOKEN_KEY, token);
storage.setItem(USER_KEY, JSON.stringify(user));
otherStorage.removeItem(TOKEN_KEY);
otherStorage.removeItem(USER_KEY);
}
/**
@@ -98,6 +107,8 @@ const UaDeckApi = (() => {
function logout() {
localStorage.removeItem(TOKEN_KEY);
localStorage.removeItem(USER_KEY);
sessionStorage.removeItem(TOKEN_KEY);
sessionStorage.removeItem(USER_KEY);
}
/**