브라우저에는 자동 로그인, 브라우저 테마 설정, 임시적인 Form 저장과 같은 이유로 사용자 혹은 사이트의 데이터를 보관할 공간이 있어야 한다.
이를 위해, 브라우저는 웹 스토리지와 쿠키를 제공한다.
웹 스토리지는 브라우저 내에 key-value 쌍으로 데이터를 저장할 수 있게 해준다.
// Frontend // 키-값 쌍을 보관하기 localStorage.setItem('theme', 'dark'); // 키에 해당하는 값 받아오기 const theme = localStorage.getItem('theme'); // dark
// Frontend // 키-값 쌍을 보관하기 localStorage.setItem('theme', 'dark'); // 키에 해당하는 값 받아오기 const theme = localStorage.getItem('theme'); // dark
ex) 유저의 선호하는 브라우저 테마를 설정할 때
// Frontend // 키-값 쌍을 보관하기 sessionStorage.setItem('id', 'doromo'); // 키에 해당하는 값 받아오기 const id = sessionStorage.getItem('id'); // doromo
// Frontend // 키-값 쌍을 보관하기 sessionStorage.setItem('id', 'doromo'); // 키에 해당하는 값 받아오기 const id = sessionStorage.getItem('id'); // doromo
ex) input form 및 일회성 로그인
// Backend - cookie-parser 사용 const token = req.cookies.token;
// Backend - cookie-parser 사용 const token = req.cookies.token;
expires
, path
, httpOnly
등 다양한 options을 설정할 수 있다. (다만 expires
나 max-age
을 설정하지 않으면, 브라우저가 닫힐 때 삭제되는 세션 쿠키로 작동한다.) | 자세한 내용 링크// Backend - express // 서버에서 브라우저에 직접 쿠키 설정하기 // 서버와 클라이언트의 도메인이 같고, sameSite: "strict"일 때만 가능하다. res.cookie("token", token, { maxAge: 1000 * 3600, sameSite: "strict", secure: false, httpOnly: false, });
// Backend - express // 서버에서 브라우저에 직접 쿠키 설정하기 // 서버와 클라이언트의 도메인이 같고, sameSite: "strict"일 때만 가능하다. res.cookie("token", token, { maxAge: 1000 * 3600, sameSite: "strict", secure: false, httpOnly: false, });
ex) 로그인 시 유저의 Authentication 토큰을 저장할 때
탭이 닫혀도 로컬 스토리지와 세션 쿠키가 아닌 쿠키는 데이터가 유지된다. 하지만 세션 스토리지는 탭이 닫히면 스토리지가 초기화된다.
# Contact : jyw966@naver.com
Copyright © doromo. All Rights Reserved.