v0.1.45 - 로그인 유지 옵션과 랜딩 문구 정리
This commit is contained in:
@@ -28,29 +28,39 @@ async function request(path, { method = 'GET', token, body } = {}) {
|
||||
|
||||
export function readAuthState() {
|
||||
if (typeof window === 'undefined') {
|
||||
return { token: '', user: null }
|
||||
return { token: '', user: null, persist: false }
|
||||
}
|
||||
|
||||
try {
|
||||
return JSON.parse(window.localStorage.getItem(AUTH_STORAGE_KEY) ?? '{"token":"","user":null}')
|
||||
const localState = JSON.parse(window.localStorage.getItem(AUTH_STORAGE_KEY) ?? 'null')
|
||||
|
||||
if (localState?.token) {
|
||||
return { ...localState, persist: true }
|
||||
}
|
||||
|
||||
const sessionState = JSON.parse(window.sessionStorage.getItem(AUTH_STORAGE_KEY) ?? 'null')
|
||||
|
||||
if (sessionState?.token) {
|
||||
return { ...sessionState, persist: false }
|
||||
}
|
||||
|
||||
return { token: '', user: null, persist: false }
|
||||
} catch (error) {
|
||||
console.warn('저장된 인증 상태를 불러오지 못했습니다.', error)
|
||||
return { token: '', user: null }
|
||||
return { token: '', user: null, persist: false }
|
||||
}
|
||||
}
|
||||
|
||||
export function persistAuthState({ token, user }) {
|
||||
export function persistAuthState({ token, user, persist = false }) {
|
||||
if (typeof window === 'undefined') {
|
||||
return
|
||||
}
|
||||
|
||||
window.localStorage.setItem(
|
||||
AUTH_STORAGE_KEY,
|
||||
JSON.stringify({
|
||||
token,
|
||||
user,
|
||||
}),
|
||||
)
|
||||
const targetStorage = persist ? window.localStorage : window.sessionStorage
|
||||
const unusedStorage = persist ? window.sessionStorage : window.localStorage
|
||||
|
||||
unusedStorage.removeItem(AUTH_STORAGE_KEY)
|
||||
targetStorage.setItem(AUTH_STORAGE_KEY, JSON.stringify({ token, user }))
|
||||
}
|
||||
|
||||
export function clearAuthState() {
|
||||
@@ -59,6 +69,7 @@ export function clearAuthState() {
|
||||
}
|
||||
|
||||
window.localStorage.removeItem(AUTH_STORAGE_KEY)
|
||||
window.sessionStorage.removeItem(AUTH_STORAGE_KEY)
|
||||
}
|
||||
|
||||
export async function signup({ email, password, nickname }) {
|
||||
|
||||
Reference in New Issue
Block a user