๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JWT

(2)
[์„œ๋ฒ„๊ฐœ๋ฐœ์บ ํ”„] ์ธ์ฆ ์„œ๋ฒ„ - ๋กœ๊ทธ์ธ : JWT + Redis ๋กœ๊ทธ์ธ JWT ๊ธฐ๋ฐ˜์˜ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ „์ฒด์ ์ธ ๋กœ์ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์š”์ฒญ 2. ์‚ฌ์šฉ์ž ํ™•์ธ ํ›„, access token๊ณผ refresh token ๋ฐœ๊ธ‰ 3. refresh token์„ Redis์— ์ €์žฅ 4. ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์š”์ฒญ ์‹œ, Redis์— refresh token ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ ํ›„ ๋ฐœ๊ธ‰ 5. ๋กœ๊ทธ์•„์›ƒ ์‹œ, Redis์— refresh token ์ •๋ณด ์‚ญ์ œ access token์€ 30๋ถ„, refresh token์€ 2์ฃผ์˜ ์œ ํšจ๊ธฐ๊ฐ„์„ ๋‘์—ˆ๋‹ค. refresh token์˜ ๊ฒฝ์šฐ ์œ ํšจ๊ธฐ๊ฐ„์ด ๊ธธ๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก Redis์— ์ €์žฅํ–ˆ๋‹ค. refresh token์„ ํ†ตํ•ด ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ์š”์ฒญ ์‹œ, refresh token์˜ ์œ ํšจ์„ฑ ์—ฌ๋ถ€ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ Redis..
[์„œ๋ฒ„๊ฐœ๋ฐœ์บ ํ”„] ์ธ์ฆ ์„œ๋ฒ„ - Spring Security + JWT ์„œ๋ฒ„๊ฐœ๋ฐœ์บ ํ”„์˜ ๋‘ ๋ฒˆ์งธ ๊ฐœ์ธ ๊ณผ์ œ๋กœ ์ธ์ฆ ์„œ๋ฒ„ ๊ตฌ์ถ•์ด ์ฃผ์–ด์กŒ๋‹ค. ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋ฉฐ ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ์ˆ ๊ณผ ์ด์Šˆ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์Šคํ”„๋ง์—์„œ๋Š” ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค์˜ ์‚ฌ์šฉ์„ ์‰ฝ๊ฒŒ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ๋„๋ก Spring Security๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์ ์šฉํ•˜๋ฉฐ ๋ฐฑ๊ธฐ์„ ๋‹˜์˜ ์œ ํŠœ๋ธŒ ๊ฐ•์ขŒ์™€ happydaddy๋‹˜์˜ ํฌ์ŠคํŒ…์ด ํฐ ๋„์›€์ด ๋˜์—ˆ๋‹ค. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋Š” ์Šคํ”„๋ง์˜ Dispatcher Servlet ์•ž๋‹จ์— ํ•„ํ„ฐ๋ฅผ ๋“ฑ๋ก์‹œ์ผœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑˆ๋‹ค. ์ด ํ›„ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•ด ๊ถŒํ•œ์ด ์—†์„ ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œํ‚จ๋‹ค. ๋‚˜๋Š” API ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ํ† ํฐ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์‹  ํ•  ๊ณ„ํš์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋งž๋Š” ์‹œํ๋ฆฌํ‹ฐ ์„ค์ •๊ณผ ๋”๋ถˆ์–ด JWT๋ฅผ ์œ„ํ•œ ํ•„ํ„ฐ๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. Spring Securi..