Expires: ์ฟ ํค๊ฐ ๋ง๋ฃ๋๋ ๋ ์ง
maxAge: ์ฟ ํค๊ฐ ์ฌ๋ผ์ง๊ธฐ๊น์ง ๋จ์ ๊ธฐ๊ฐ(์ด)
Domain: ์ฟ ํค๊ฐ ์ฌ์ฉ๋๋ ๋๋ฉ์ธ
Path: ํน์ ๊ฒฝ๋ก์ ์ ๊ทผ ์ ์ฟ ํค ์ ์ก
Secure: https ํต์ ์์๋ง ์ฟ ํค ์ ์ก
HttpOnly: ํด๋ผ์ด์ธํธ ์ธก์์ ์ฟ ํค ์ ๊ทผ ๋ฐฉ์ง
cookie-parser์๋ signed์ต์
์ด ์กด์ฌํด ์ฟ ํค์ value ๋ณํ์ฌ๋ถ,
๋น๋ฐํค ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง ๋ณ์กฐ๋ฅผ ๊ฐ์งํ์ง ์กฐํ๋ฅผ ๊ฐ์งํ์ง ๋ชปํ๋ค.
์ฟ ํค๋ฅผ ์ฅ์ ์ ์๋ฒ์ ๋ถํ๊ฐ ์ค์ด๋ ๋ค.
๋์์ ๋ธ๋ผ์ฐ์ ์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ๋ค.
์ฟ ํค๋ง์ผ๋ก๋ ๋ณด์์ฑ ์ทจ์ฝ์ ์ ์ก์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
์ธ์ (session)์ ์๋ฒ์ ์ ์ฅ๋๋ key-value ํ์์ ๋ฐ์ดํฐ.
์๋ฒ์ ์ ์ฅ๋ ๋ฐ๊ธ๋ฒํธ๋ฅผ ํตํ ์ ์ ๋ฅผ ๊ฒ์ฆํ๋ค.
์ฆ ์๋ฒ์์ ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ์ดํ ์ ์๋ค.
uuid์ ๊ฐ์๊ฒ์ ์์ฑ๋ ์ธ์
id๋ ์ฌ์ฉ์ ์ธก์ ์ ์ฅํ๋ค.
JsonWebToken์ผ๋ก JSON ๊ฐ์ฒด๋ฅผ Base64 URL-safe Encode ๋ก ์ธ์ฝ๋ฉํ์ฌ
๋น๊ต์ ์์ ํ๋ค.
header.payload.signature ๋ก ๊ตฌ๋ถ๋๋ค.
๋ฆฌํ๋์ ํ ํฐ๊ณผ ํจ๊ป ์ด์ฉํ๋ฉด ์ธ์
๋ฐฉ์๊ณผ ๋น์ทํ๋ค.
ํ์ง๋ง ์ธ์
๋ณด๋ค ์ ์ฅํ๋ ๋ฐ์ดํฐ์ ์์ด ์ ๋ค.
ํค๋ ํ์ด๋ก๋๋ ๋์ฝ๋ฉํ๊ธฐ ๋งค์ฐ ํธ๋ฆฌํ๋ค. ๊ทธ๋์ ์ฟ ํค์ ๊ฐ์ด
๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ๋ฃ์ง ์๋๋ก ํ๋ค.
middleware์์ ์ฌ๋ฌ ๋ฉ์๋๋ฅผ ํตํด http์์ฒญ ์ฌ์ดํด์ด ๋๋ ํ
response์ ์ ๊ทผ response ์กฐ์๋ฑ์ด ๊ฐ๋ฅํ๋ค
๋ฉ์๋ ์ข ๋ฅ
์ด ๋ json, redirect, send ๋ฑ์ next()๋ฅผ ์จ์ฃผ์ง ์๋๋ก ํ๋ค.
next()๋ฅผ ์จ์ฃผ๊ฒ ๋๋ฉด ์๋ต์ด ๋ณต์๋ก ์ ๋ฌ๋์ด ์ค๋ฅ๋ฐ์๊ฐ๋ฅ์ฑ์ด ์๊ธด๋ค.