로그인 유지와 마지막 접속 기록 개선
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user