๐Ÿ”ฅ TIL - Day 23

Kim Dae Hyunยท2021๋…„ 10์›” 9์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
26/93

๐Ÿ“Œ JWT.. ๊ทธ๋ƒฅ ๋Œ€์ถฉ ๊ตฌํ˜„ํ•ด์„œ ์“ฐ๋ฉด ์•ˆ๋  ๊ฒƒ ๊ฐ™์€ ..

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ธ์ฆ์€ OAuth2๋กœ ํ•˜๊ณ  ์—‘์„ธ์Šค ํ† ํฐ์€ JWT ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐœ๊ธ‰ํ•˜๊ณ  ์žˆ๋‹ค. ์—‘์„ธ์Šค ํ† ํฐ์˜ ๊ฒฝ์šฐ ๋งŒ๋ฃŒ๊ธฐํ•œ์„ 1์ผ๋กœ ํ–ˆ๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์ฟ ํ‚ค์— ๋‹ด์•„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ž... ์ฟ ํ‚ค์— ๋‹ด๊ธด ์—‘์„ธ์Šค ํ† ํฐ์ด ํƒˆ์ทจ๋‹นํ–ˆ๋‹ค๋ฉด ? ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ํ† ํฐ์„ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์ž„์˜๋กœ ๋งŒ๋ฃŒ์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. ๋ณด์•ˆ์ƒ ๋„ˆ๋ฌด ํฐ ์ทจ์•ฝ์ ์ด๋‹ค. ์กฐ๊ธˆ์ด๋ผ๋„ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ฐพ์•„๋ณด์ž


์ฒซ๋ฒˆ์งธ
์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ์ ‘๊ทผ์€ JWT ํ† ํฐ์˜ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ์งง๊ฒŒ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋” ๊ทน๋‹จ์ ์œผ๋กœ ๋งค ์š”์ฒญ๋งˆ๋‹ค ํ† ํฐ์„ ๋งŒ๋ฃŒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๋Š” ์งง์•„์ง„ ์ฃผ๊ธฐ์— ๋งž์ถฐ ๋” ์ž์ฃผ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด๋‹ค.

๋‘๋ฒˆ์งธ
์—‘์„ธ์Šค ํ† ํฐ์„ ์žฌ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” Refresh Token ์„ ์ถ”๊ฐ€๋กœ ๋ฐœ๊ธ‰ํ•ด๋ณด์ž.
์ตœ์ดˆ ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ์— ์„ฑ๊ณตํ–ˆ์„ ๋•Œ Access Token ๊ณผ Refresh Token ๋‘ ๊ฐœ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
Refresh Token ์˜ ๋งŒ๋ฃŒ๊ธฐํ•œ์€ ๊ธธ๊ฒŒ ์„ค์ •ํ•ด์ฃผ๋ฉด Access Token์ด ๋งŒ๋ฃŒ๋˜๋”๋ผ๋„ ์‚ฌ์šฉ์ž๋Š” Refresh Token๊ณผ ์„œ๋ฒ„์˜ ๋กœ์ง์— ์˜ํ•ด ์ƒˆ๋กœ์šด Access Token์„ ๋ฐœ๊ธ‰๋ฐ›๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทผ๋ฐ Refresh Token์ด ํƒˆ์ทจ๋‹นํ•œ๋‹ค๋ฉด ... ?

์„ธ๋ฒˆ์งธ
Refresh Token ์€ HTTP Only ์ฟ ํ‚ค๋กœ ์„ค์ •ํ•œ๋‹ค.
HTTP only๋กœ ์„ค์ •ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ javascript๋ฅผ ํ†ตํ•ด ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ฟ ํ‚ค๋ฅผ ์—ด์–ด๋ณผ ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.


๊ฝค ์˜ค๋žซ๋™์•ˆ jwt ๊ด€๋ จ ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ดค๋Š”๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฐฉ์‹์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋ชจ๋‘ ๋‚˜๋ฆ„์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์‚ฌ์‹ค ์•„์ง๋„ 100% ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ์ง€๋„ ๋ชปํ–ˆ๋‹ค.. ๊ทธ๋ž˜๋„ ํฐ ๊ฐœ๋…์€ ์ดํ•ดํ–ˆ์œผ๋‹ˆ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„์„ ๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค.

profile
์ข€ ๋” ์ฒœ์ฒœํžˆ ๊นŒ๋จน๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๐Ÿง

0๊ฐœ์˜ ๋Œ“๊ธ€