๋ก๊ทธ์ธ ๊ด๋ จํด์... ์ฐจ๊ณก์ฐจ๊ณก ๊ธ์ ์์ ๋ชจ์ผ๋ ค๊ณ ํ๋๋ฐ ์ผ๋จ ์ต๊ทผ์ ๋ฐ์ํ ์ด์ ํด๊ฒฐ์ ๋จผ์ ์ ์ผ๋ ค๊ณ ํ๋ค. ์ง๋ ํ๋ค ์ธ์ ...
// ์ฟ ํค์ maxAge๋ฅผ originalMaxAge๋ก ๋ฐ๊พผ๋ค
req.session.resetMaxAge();
// ์๋ต์ ์ฟ ํค ๋ง๋ฃ ์๊ฐ์ ํจ๊ป ๋ณด๋ด์ค๋ค
res.json({
success: true,
message: '์ธ์
๋ง๋ฃ ์๊ฐ ์ฐ์ฅ ์ฑ๊ณต!',
expiredTime: req.session.cookie.expires.getTime(),
});
๋ฌด์จ ๋ฌธ์ ๋ํ๋ฉด! ์๋ฒ์์๋ ์ธ์
์ฟ ํค์ ๋ง๋ฃ ์๊ฐ์ด ์ฐ์ฅ์ด ๋๋๋ฐ, ์ค์ ๋ก๋ ์ฐ์ฅ ์ ์ ๋ง๋ฃ ์๊ฐ์ ์ธ์
์ด ์ฌ๋ผ์ ธ๋ฒ๋ ค์ 401
์๋ฌ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค.
๋๋ ์ฝ์์ ์ฐํ ๊ฒ๋ง ํ์ธ์ ํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์ํฉ์ ์์ง ๋ชปํ๋ค. ์๋ฒ์์๋ ํ์ธ์ด ์ ๋์์... ์๋ช ๊ณผ๋ ๊ฐ์ ์ฝ์์๋ ๋ถ๋ช ์ด์์ด ์์ด ์๊ฐ ์ฐ์ฅ์ด ์ ๋๋๋ฐ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌ์ ๋ชปํ๊ฒ ์ผ๋๊น ์ด๊ฑฐ๋ก ํ๋ฃจ์ดํ์ ์ก์๋จน์๋ฏ...
์ฐธ๊ณ ๋ก ํ ์คํธ ํ ๋ ๊ทธ๋ฅ ์ฟ ํค ๋ง๋ฃ ์๊ฐ 5๋ถ ์ ๋๋ก ๋ฐ๊ฟ์ ํด๋ ๋์ํ ๋ฐ ๊ฑ 60๋ถ์ฉ ๊ธฐ๋ค๋ ค๊ฐ๋ฉด์ ํ์. ๊ณผ๊ฑฐ์ ๋ ์๊ทธ๋ฌ์ง?... ๋จธ์ฑ...
10์ 9๋ถ ์ต์ด ๋ก๊ทธ์ธ
์ต์ด ๋ก๊ทธ์ธ ์ ์ฟ ํค ๊ฐ
expires: 2024-02-06T02:09:17.750Z
__lastAccess: 1707181757751
โก๏ธ ์ต์ด ๋ก๊ทธ์ธ ์ธ์ ๋ง๋ฃ ์๊ฐ 11์ 9๋ถ
์ธ์ ์ฐ์ฅ
- ํ์ธ ๋ก๊ทธ
cookie์maxAge: 2248707
โmaxAge: 360000
๐ช ์ฐ์ฅ ์๋ฃ
cookie์expires: 2024-02-06T02:19:17.650Z
โexpires: 2024-02-06T01:31:49.047Z
๐ช ๋ง๋ฃ ์๊ฐ ์ฐ์ฅ ์๋ฃ
โก๏ธ ์ฐ์ฅ๋ ๋ก๊ทธ์ธ ์ธ์ ๋ง๋ฃ ์๊ฐ 11์ 19๋ถ
์ฟ ํค ์ฌํ์ธ
expires: 2024-02-06T02:31:49.048Z
__lastAccess: 1707181757751
โ__lastAccess: 1707183109049
๋ด๋ด์... ์ฌ๊ธด ๋ฉ์ฉกํ๋ค๋๊น์ ์ฝ์์ ์ฐํ ๋ด์ฉ๋ค์ ๋ณด๋ฉด ์ ํ ๋ฌธ์ ๊ฐ ์๋ค ใ ใ
11์ 9๋ถ ์ดํ ๊ธ ์ฐ๊ธฐ
(์ต์ด ์ธ์ ๋ง๋ฃ ์๊ฐ ์ดํ)
์ ์ง์ง ์๋ใท... 401 ์๋ฌ
์ฟ ํค ํ์ธ
๊ทธ๋ฐ๋ฐ...? ๊ทธ๋์ ์ฟ ํค๋ฅผ ํ์ธํด๋ด๋ ์ฐ์ฅ๋ ์๊ฐ์ผ๋ก ๊ทธ๋๋ก ์๋ค...? ์ด ๋๋ถํฐ ๋ฉ๋ถ ์ง์กฐ๊ฐ ์์
๋ฌธ์ ์์ธ: maxAge๊ฐ ๋ฆฌ์ ์ด ๋์ด๋ expires์ ์ํฅ์ ์ฃผ์ง ๋ชปํ๋ ๊ฒ์ผ๊น?
resetMaxAge()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ maxAge
๋ฅผ ๋ฆฌ์
ํ ํ ์ธ์
์ ๋ง๋ฃ ์๊ฐ์ ๊ฐ์ ธ์์ .setHeaher
๋ก ์ฟ ํค ๊ฐ์ ์ธํ
ํด์ฃผ๊ธฐ // ์ฟ ํค์ maxAge๋ฅผ originalMaxAge๋ก ๋ฐ๊พผ๋ค
req.session.resetMaxAge();
// ์ธ์
์ ๋ง๋ฃ ์๊ฐ์ ๊ฐ์ ธ์จ๋ค
const sessionExpires = req.session.cookie.expires;
// ์ฟ ํค์ expires ์์ฑ์ ์ธ์
์ ๋ง๋ฃ ์๊ฐ์ผ๋ก ์ค์
res
.setHeader('Set-Cookie', `expires=${sessionExpires.toUTCString()}`)
.json({
success: true,
message: SUCCESS_MESSAGE.SESSION_EXTENDS,
expiredTime: req.session.cookie.expires.getTime(),
});
11์ 41๋ถ ์ต์ด ๋ก๊ทธ์ธ
์ต์ด ๋ก๊ทธ์ธ ์ ์ฟ ํค ๊ฐ
expires: 2024-02-06T03:41:22.612Z
__lastAccess: 1707187282612
โก๏ธ ์ต์ด ๋ก๊ทธ์ธ ์ธ์ ๋ง๋ฃ ์๊ฐ 12์ 41๋ถ
์ธ์ ์ฐ์ฅ
- ํ์ธ ๋ก๊ทธ
cookie์maxAge: 360000
๐ช ์ฐ์ฅ ์๋ฃ
cookie์expires: 2024-02-06T03:41:22.612Z
โexpires: 2024-02-06T03:45:37.131Z
๐ช ๋ง๋ฃ ์๊ฐ ์ฐ์ฅ ์๋ฃ
์ฟ ํค ์ฌํ์ธ
expires: 2024-02-06T03:45:37.133Z
__lastAccess: 1707187537135
โก๏ธ ์ฐ์ฅ ์ธ์ ๋ง๋ฃ ์๊ฐ 12์ 45๋ถ
12์ 42๋ถ ๊ธ ์์ฑ ํ ์คํธ
401 ๋์ด๋ฒ๋ ธ์ฃ ...
session
์ resetMaxAge()
ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ์์ ์ฌ์ค์ ์ ํด์ฃผ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ค. (ํจ์์ ๋ฌธ์ ์ผ๊น ์๊ฐํด๋ด) // ์ธ์
๋ง๋ฃ ์๊ฐ ์ฌ์ค์
req.session.cookie.maxAge = 3600000;
res
.setHeader('Set-Cookie', 'Max-Age=3600000')
.json({
success: true,
message: SUCCESS_MESSAGE.SESSION_EXTENDS,
expiredTime: req.session.cookie.expires.getTime(),
});
์ด๋ ๊ฒ ์ฌ์๋๋ฅผ ํด๋ด ๋๋ค!
์ต์ด ๋ก๊ทธ์ธ
์คํ 12์ 52๋ถ
์ต์ด ๋ก๊ทธ์ธ ์ ์ฟ ํค ๊ฐ
expires: 2024-02-06T04:52:28.976Z
__lastAccess: 1707191548977
โก๏ธ ์ต์ด ๋ก๊ทธ์ธ ์ธ์ ๋ง๋ฃ ์๊ฐ 1์ 52๋ถ
์ธ์ ์ฐ์ฅ
- ํ์ธ ๋ก๊ทธ
cookie์maxAge: 360000
๐ช ์ฐ์ฅ ์๋ฃ
cookie์expires: 2024-02-06T04:52:28.976Z โ expires: 2024-02-06T03:55:03.674Z
๐ช ๋ง๋ฃ ์๊ฐ ์ฐ์ฅ ์๋ฃ
์ฟ ํค ์ฌํ์ธ
expires: 2024-02-06T04:55:03.675Z
__lastAccess: 1707191703676
โก๏ธ ์ฐ์ฅ ์ธ์ ๋ง๋ฃ ์๊ฐ 1์ 55๋ถ
1์ 53๋ถ ๋ ์คํจ์... ๋ ์คํจ์ผ... ์?...
์ด ์ฝ๋์์ req.session.resetMaxAge()๋ ์ฟ ํค์ maxAge๋ฅผ originalMaxAge๋ก ๋ณ๊ฒฝํ๋ ค๋ ์๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฉ์๋๋ ์ธ์
์ฟ ํค์ maxAge๋ฅผ ์ฌ์ค์ ํ๋ ๊ฒ์ด ์๋, ์ธ์
์ maxAge๋ฅผ ์ด๊ธฐํํฉ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ฉ์๋๋ ์ํ๋ ์์
์ ์ํํ์ง ์์ ๊ฒ์
๋๋ค.
๋ํ res.setHeader('Set-Cookie', 'Max-Age=3600000')๋ ์ฟ ํค์ maxAge๋ฅผ ์ค์ ํ๋ ค๋ ์๋๊ฐ ์์ง๋ง, ์ด๊ฒ์ ์๋ก์ด ์ฟ ํค๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ฉฐ, ๊ธฐ์กด์ ์ธ์
์ฟ ํค์ ๋ง๋ฃ์๊ฐ์ ์ฐ์ฅํ๋ ๊ฒ์ด ์๋๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ฟ ํค์ ๋ง๋ฃ ์๊ฐ์ ์ฐ์ฅํ๋ ค๋ฉด express-session์ cookie.maxAge ์ต์
์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ต์
์ ๋ณ๊ฒฝํ๋ฉด express-session ๋ฏธ๋ค์จ์ด๊ฐ ์๋์ผ๋ก Set-Cookie ํค๋๋ฅผ ์ค์ ํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํฉ๋๋ค. ๋ฐ๋ผ์ res.setHeader('Set-Cookie', 'Max-Age=3600000') ์ฝ๋๋ ํ์ ์์ต๋๋ค.
๋ต๋ตํ ๋ง์์ ๋คผํผ์ ๋ฌผ์ด๋ณด๋ ์ด๋ฐ ๋ต์ ์ป์๋ค...
์ธ์
์ฟ ํค
์ ์ธ์
์ ๋ค๋ฅด๋ค๊ตฌ...?! ์ธ์
์๋ maxAge๊ฐ ์๊ณ ์ธ์
์ฟ ํค์๋ maxAge๊ฐ ์๋๋ฐ ๋๋ ์ธ์
๋ง ๊ฑด๋ค๊ธฐ ๋๋ฌธ์ ์ฟ ํค์ ์ํฅ์ ์ฃผ์ง ์๋๋ค๋ ๋ง์ธ๊ฐ...?!
์ด๊ฒ ๋จผ์๋ฆฌ์ผ... ํ๊ณ ๋ค์ ๋ฌผ์ด๋ดค๋ค. ๊ฐ์ ๊ฑฐ ์๋์ผ?!
์ฃ์กํฉ๋๋ค, ์ ๊ฐ ์ค๋ช
์ด ํผ๋์ค๋ฌ์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ธ์
์ฟ ํค์ ์๋ฒ ์ธ์
์ maxAge ์ค์ ์ ์ฌ์ค์ ๋์ผํ ์์
์ ์ํํฉ๋๋ค. ๋ ๋ค ์ธ์
์ ์ ํจ ๊ธฐ๊ฐ์ ์ค์ ํ๋ ๊ฒ์
๋๋ค.
์ธ์
์ฟ ํค์ maxAge๋ ์ฟ ํค๊ฐ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์๊ฒ ์ ์ก๋ ๋, ๊ทธ ์ฟ ํค๊ฐ ์ผ๋ง๋ ์ค๋ ์ ์ง๋ ์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ ๊ฒ ์ค์ ๋ maxAge๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ํค๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ์ํฅ์ ์ค๋๋ค.
๋ฐ๋ฉด์, ์๋ฒ ์ธ์
์ maxAge๋ ์๋ฒ์์ ์ธ์
๋ฐ์ดํฐ๋ฅผ ์ผ๋ง๋ ์ค๋ ์ ์งํ ์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ ์๋ฒ๊ฐ ์ธ์
๋ฐ์ดํฐ๋ฅผ ์ธ์ ์ญ์ ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐ๋ผ์ req.session.cookie.maxAge = 3600000; ์ด ์ฝ๋๋ ์ฌ์ค์ ์ธ์
์ฟ ํค์ maxAge๋ฅผ ์๋ฒ ์ธก์์ ์ฌ์ค์ ํ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ ๋์์ ์๋ฒ ์ธ์
์ ์ ํจ ๊ธฐ๊ฐ์ ์ฌ์ค์ ํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ชจ๋์์ ์ธ์
์ด ์ผ๋ง๋ ์ค๋ ์ ์ง๋ ์ง๋ฅผ ๋์ผํ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
๋ค์ ํ๋ฒ, ์ ์ค๋ช
์ด ํผ๋์ค๋ฌ์ ๋ค๋ฉด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์ด์ ๋ํ ๊ทํ์ ์ง๋ฌธ์ ๋ํด ์ข ๋ ๋ช
ํํ๊ฒ ๋ต๋ณํ์๋ฉด, ์ธ์
์ฟ ํค์ maxAge์ ์๋ฒ ์ธ์
์ maxAge๋ฅผ ์ฌ์ค์ ํ๋ ๊ฒ์ ์ค์ง์ ์ผ๋ก ๊ฐ์ ์์
์ ์ํํ๋ฉฐ, ์ด ๋์ ์ธ์
์ ์ ํจ ๊ธฐ๊ฐ์ ๋์ผํ๊ฒ ์ ์งํ๊ธฐ ์ํด ํจ๊ป ์ฌ์ค์ ๋์ด์ผ ํฉ๋๋ค.
์ด๋ฌ๋๊น ๋ค์ ํผ๋์ ๋น ์ง ์๋ฐ์...
ํ์ง๋ง ๊ทธ๋๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๋ ๋ฐ๊ฒฌ. ๋ด๊ฐ res.setHeader
๋ก Set-Cookie๋ฅผ ํด์ค ๊ฐ์ ๋ด ์๋๋๋ก ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ์ฟ ํค ๋ง๋ฃ์๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋, ๊ทธ๋ฅ Set-Cookieํ ์ฟ ํค๊ฐ ์๋กญ๊ฒ ์๊ธฐ๋ ๊ฒ์ด์๋ค. ๋๋ฌธ์ setHeader๋ ํด๊ฒฐ์ฑ
์ด ๋ ์ ์๋ค.
express-session
์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฏธ๋ค์จ์ด๊ฐ Set-Cookie
๋ฅผ ์๋์ผ๋ก ํด์ค๋ค๋ ์ ์ ์๊ณ ์์๋๋ฐ๋ ๊ทธ ์ ์ ์บ์นํ์ง ๋ชปํ๋ค. ์ฌ์ค ์์์ง๋ง... ํน์๋ผ๋... ์งํธ๋ผ๊ธฐ๋ผ๋ ์ก๋ ์ฌ์ ์ผ๋ก ํ๋ ๊ฑด๋ฐ ์ด๋ฆผ์์ฃ ใ
ํ์์~~
// ์ฟ ํค์ maxAge๋ฅผ originalMaxAge๋ก ๋ฐ๊พผ๋ค
req.session.cookie.maxAge = 3600000;
res
.json({
success: true,
message: SUCCESS_MESSAGE.SESSION_EXTENDS,
expiredTime: req.session.cookie.expires.getTime(),
});
์์ ๊ฐ์ ์ฝ๋๋ก ๋์ฒด๋ฅผ ํ๋ค. ์ ๋ฐ ๊ณผ์ฐ ์ด๋ฒ์...?
์ต์ด ๋ก๊ทธ์ธ 2์ 1๋ถ
์ต์ด ๋ก๊ทธ์ธ ์ ์ฟ ํค ๊ฐ
expires: 2024-02-06T06:01:47.705Z
__lastAccess: 1707195707706
โก๏ธ ์ต์ด ๋ก๊ทธ์ธ ์ธ์ ๋ง๋ฃ ์๊ฐ ์คํ 3์ 1๋ถ
์ธ์ ์ฐ์ฅ
- ํ์ธ ๋ก๊ทธ
cookie์maxAge: 360000
๐ช ์ฐ์ฅ ์๋ฃ
cookie์expires: 2024-02-06T06:01:47.705Z โ expires: 2024-02-06T06:08:25.552Z
๐ช ๋ง๋ฃ ์๊ฐ ์ฐ์ฅ ์๋ฃ
์ฟ ํค ์ฌํ์ธ
expires: 2024-02-06T06:08:25.553Z
__lastAccess: 1707196105554
โก๏ธ ์ฐ์ฅ ์ธ์ ๋ง๋ฃ ์๊ฐ ์คํ 3์ 8๋ถ
ํ์ง๋ง... ์ด ์ฝ๋๋ ์์ฉ์ด ์๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์๋ค.
์คํฌ ์ธ๋๊ฐ(๋ฏธ๋ cto) ์๋ ค ์ค ๊ฑด๋ฐ
์ ๊ธฐ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋ ์ฟ ํค๊ฐ ์ ๋ฐ๋. ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋ ์์ฉ์ด ์์. ์๋ผ์ด...
์ฃฝ์ด์ ๋ชปํจ
๊ทธ๋๋!! ์ผ๋จ ์ค๋ ๋ง์ง๋ง๊น์ง ์ฝ์งํ๋ฉด์ ์์๋ธ ๊ฑด, ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋ ์ฟ ํค ๋ง๋ฃ ์๊ฐ์ด ๋ณํ์ง ์๋๋ค๋ ๊ฒ์ด ๋ฌธ์ ์๋ค๋ ์ฌ์ค์ด๋ค.
๋จ์ํ ์ฝ๋ ํ ์ค๋ก ๋ฐ๋๊ธฐ์ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค๋ฅผ ํตํด ํต์ ํ๋ ๊ณผ์ ์์ ์ด๊ฒ ์ฌ์ด๊ฒ ์๋์๋๋ณด๋ค. ์ฃฝ์ฌ์ค...