๐Ÿ’ป์›น(Web)

์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ, ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ, JWT๋ฅผ ํ†ตํ•œ ์ธ์ฆ ์ ˆ์ฐจ(with Access Token, Refresh Token)

stonesy 2023. 3. 26. 16:47
728x90

๐Ÿ“–์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ

๐Ÿ”Ž์„ธ์…˜์ด๋ž€?

์„ธ์…˜์ด๋ž€ ์„œ๋ฒ„์ธก์— ์ €์žฅ๋˜๋Š” ์ž„์‹œ์ƒํƒœ์ •๋ณด์ด๋‹ค. ์„œ๋ฒ„ ์ธก์— ์ €์žฅ๋˜๋ฏ€๋กœ ๋ณด์•ˆ์„ฑ์ด ๋†’์ง€๋งŒ, ํ™•์žฅ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๊ณ ์œ ํ•œ ์„ธ์…˜ ID๋ฅผ ์ƒ์„ฑํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์†กํ•œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ฟ ํ‚ค/๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ์— ์„ธ์…˜ ID๋ฅผ ์ €์žฅํ•œ๋‹ค. ์„ธ์…˜ ID ์ž์ฒด์—๋Š” ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์—์„œ ์•ˆ์ „ํ•˜๋‹ค. ๋งŒ์•ฝ, ์„ธ์…˜ ID๊ฐ€ ํƒˆ์ทจ ๋‹นํ–ˆ๋‹ค๋ฉด ์„œ๋ฒ„๋Š” ๋‹จ์ง€ ํ•ด๋‹น ์„ธ์…˜์„ ๋งŒ๋ฃŒ์‹œํ‚ค๋ฉด ๋œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์š”์ฒญ์‹œ์— ์„ธ์…˜ ID์™€ ํ•จ๊ป˜ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋ฒ„๋Š” ์„ธ์…˜ ์ •๋ณด๋ฅผ ํ†ฐ์บฃ์˜ WAS, DB, ๋ฉ”๋ชจ๋ฆฌ DB ๋“ฑ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ DB์—๋Š” Redis ๋“ฑ์ด ์žˆ๋‹ค.

 

โœ๏ธ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ๋น„๊ต

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

  • ๋ณด์•ˆ์ธก๋ฉด: ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๋ฏ€๋กœ ํƒˆ์ทจ๋‹นํ•˜๊ธฐ ์‰ฝ๋‹ค. ๋”ฐ๋ผ์„œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฟ ํ‚ค๋Š” XSS๊ณต๊ฒฉ(์›น ์‚ฌ์ดํŠธ์— ์•…์˜์ ์ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ณต๊ฒฉ)์„ ํ†ตํ•ด์„œ ํƒˆ์ทจ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฟ ํ‚ค์˜ ํƒˆ์ทจ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ๋Š” HTTPOnly ์˜ต์…˜์„ ํ†ตํ•ด HTTP(S) ์š”์ฒญ์„ ํ†ตํ•ด์„œ๋งŒ ์ฟ ํ‚ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์šฉ๋Ÿ‰์ธก๋ฉด: ์ฟ ํ‚ค๋Š” 4KB์˜ ํฌ๊ธฐ๋กœ ๋น„๊ต์  ์ž‘์€ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง„๋‹ค.
  • ์ž๋™์ „์†ก: ๋™์ผํ•œ ์„œ๋ฒ„ ์š”์ฒญ์‹œ์— ์ฟ ํ‚ค๋Š” ์ž๋™์œผ๋กœ ์š”์ฒญ์— ํฌํ•จ๋˜์–ด ์ „์†ก๋œ๋‹ค. ๋‹จ, ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์œˆ๋„์šฐ๋ณ„๋กœ ๊ด€๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ธฐ๊ฐ„์„ค์ •: ์ฟ ํ‚ค๋Š” ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„ธ์…˜์€ ์ฟ ํ‚ค์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ๋ณด์•ˆ์„ฑ์ด ์šฐ์ˆ˜ํ•˜๋‹ค.

 

โœ๏ธ๊ธฐํƒ€: ์ฟ ํ‚ค์™€ ์›น ์Šคํ† ๋ฆฌ์ง€ ๋น„๊ต

์ฟ ํ‚ค์˜ ํ•œ๊ณ„

1. ์ž‘์€ ์šฉ๋Ÿ‰

2. ๋ถˆํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ฐœ์ƒ: ์ž๋™์ „์†ก์œผ๋กœ ์ธํ•œ ๋ถˆํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ ๋ฐœ์ƒ

3. ๋ธŒ๋ผ์šฐ์ €์˜ ์œˆ๋„์šฐ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ๊ฐ’ ์ €์žฅ ๋ถˆ๊ฐ€

 

์›น ์Šคํ† ๋ฆฌ์ง€

์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€: ๋ธŒ๋ผ์šฐ์ €์˜ ์œˆ๋„์šฐ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ, ์œˆ๋„์šฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ์†Œ๋ฉธ๋˜๋Š” ์ผ์‹œ์ ์ธ ์ €์žฅ์†Œ์ด๋‹ค. 

๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ด: ๋ธŒ๋ผ์šฐ์ €์˜ ์œˆ๋„์šฐ๊ฐ€ ๊ณต์œ ํ•˜๋ฉฐ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์œˆ๋„์šฐ๊ฐ€ ๋‹ซํ˜€๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ์˜๊ตฌ์ ์ธ ์ €์žฅ์†Œ์ด๋‹ค. 

 

 

๐Ÿ“–ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ

์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ์—์„œ๋Š” ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์—์„œ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ–ˆ๋‹ค๋ฉด, ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๊ณ ์œ ํ•œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ , ์‚ฌ์šฉ์ž๋Š” ์ด ํ† ํฐ์„ ๋งค ์š”์ฒญ๋งˆ๋‹ค ํฌํ•จํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.

JWT(Json Web Token)์€ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋กœ, ์‚ฌ์šฉ์ž ์ธ์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ JSON ํ˜•ํƒœ๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ํ† ํฐ ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 

 

๐Ÿ“ŒJWT

JWT๋ž€ ์ธ์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ์•”ํ˜ธํ™”์‹œํ‚จ JSON ํ† ํฐ์ด๋‹ค. JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ JWT ํ† ํฐ(Access Token)์„ HTTP ํ—ค๋”์— ์‹ค์–ด ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

JWT๋Š” JSON ๋ฐ์ดํ„ฐ๋ฅผ Base64 URL-safe Encode๋ฅผ ํ†ตํ•ด ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์ง๋ ฌํ™”ํ•œ ๊ฒƒ์ด๋‹ค. ํ† ํฐ ๋‚ด๋ถ€์—๋Š” ์œ„๋ณ€์กฐ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๊ฐœ์ธํ‚ค๋ฅผ ํ†ตํ•œ ์ „์ž์„œ๋ช…์ด ๋“ค์–ด์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ JWT๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์„œ๋ช…์„ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋˜๋ฉฐ ๊ฒ€์ฆ์ด ์™„๋ฃŒ๋˜๋ฉด ์š”์ฒญํ•œ ์‘๋‹ต์„ ๋Œ๋ ค์ค€๋‹ค.

JWT๋Š” .๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ๋‚˜๋ˆ„์–ด์ง€๋Š” ์„ธ ๊ฐ€์ง€ ๋ฌธ์ž์—ด์˜ ์กฐํ•ฉ๋‹ˆ๋‹ค. .๋ฅผ ๊ธฐ์ค€์œผ๋กœ Header, Payload, Signature๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค. Header์—๋Š” JWT์—์„œ ์‚ฌ์šฉํ•  ํƒ€์ž…๊ณผ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ์œผ๋ฉฐ, Payload๋Š” ์„œ๋ฒ„์—์„œ ์ฒจ๋ถ€ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ ์ •๋ณด์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ Signature์—๋Š” Header, Payload๋ฅผ Base64 URL-safe Encode๋ฅผ ํ•œ ์ดํ›„ Header์— ๋ช…์‹œ๋œ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๊ณ , ๊ฐœ์ธํ‚ค(Private Key)๋กœ ์„œ๋ช…ํ•œ ์ „์ž์„œ๋ช…์ด ๋‹ด๊ฒจ์žˆ๋‹ค.

 

โœ๏ธAccess Token์˜ ํ•œ๊ณ„

โ—์‚ฌ์šฉ์ž์˜ ์žฆ์€ ๋กœ๊ทธ์•„์›ƒ ๊ฒฝํ—˜, ๋ณด์•ˆ ๋ฌธ์ œ

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

 

โœ๏ธRefresh Token์˜ ๋„์ž…

๋ชฉ์ 

Refresh Token์˜ ๋ชฉ์ ์€ Access Token์˜ ์œ ํšจ ๊ธฐ๊ฐ„์„ ์งง๊ฒŒ ๋งŒ๋“ค์–ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋ฉด์„œ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ์žฆ์€ ๋กœ๊ทธ์•„์›ƒ ๊ฒฝํ—˜์„ ํ•˜์ง€ ์•Š๋„๋ก ํ•จ์— ์žˆ๋‹ค.

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

 

์œ ํšจ๊ธฐ๊ฐ„

Refresh Token์€ Access Token ๋Œ€๋น„ ๊ธด ์œ ํšจ ๊ธฐ๊ฐ„์„ ๊ฐ–๋Š”๋‹ค. Refresh Token์„ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Access Token์˜ ์œ ํšจ๊ธฐ๊ฐ„์€ 30๋ถ„ ์ด๋‚ด Refresh Token์˜ ์œ ํšจ๊ธฐ๊ฐ„์€ 2์ฃผ ์ •๋„๋กœ ์„ค์ •ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋‹น์—ฐํžˆ ์„œ๋น„์Šค ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์œ ํšจ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

ํ•œ๊ณ„

Refresh Token ๋„์ž…์„ ํ†ตํ•ด Access Token์˜ ์œ ํšจ์‹œ๊ฐ„์„ ์งง๊ฒŒ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ์งง์€ ์œ ํšจ ์‹œ๊ฐ„๋™์•ˆ Access Token์ด ํƒˆ์ทจ๋‹นํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. ๋˜ํ•œ Refresh Token์ด ํƒˆ์ทจ๋‹นํ•œ๋‹ค๋ฉด ๊ณต๊ฒฉ์ž๋Š” Access Token์„ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์กด์žฌํ•œ๋‹ค.

 

๐Ÿ”ŽJWT๋ฅผ ํ†ตํ•œ ์ธ์ฆ ์ ˆ์ฐจ(with Access Token, Refresh Token)

[ํ”„๋ก ํŠธ์—”๋“œ]: ๋ฐฑ์—”๋“œ์— ID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

[๋ฐฑ์—”๋“œ]: ID์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  Access Token๊ณผ Refresh Token, Access Token์˜ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. ์ด๋•Œ ์ƒ์„ฑํ•œ Refresh Token์€ DB์— {ID, Refresh Token}์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

[ํ”„๋ก ํŠธ์—”๋“œ]: ๋ฐ˜ํ™˜๋ฐ›์€ Access Token์„ ๋งค api ํ˜ธ์ถœ๋งˆ๋‹ค ํ—ค๋”์— ๋ถ™์—ฌ์„œ ์ „์†กํ•œ๋‹ค.

[๋ฐฑ์—”๋“œ]: api ํ˜ธ์ถœ์‹œ ํ—ค๋”์˜ Access Token์„ ํ™•์ธํ•˜๊ณ  ์œ ํšจํ•œ์ง€, ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ์ง€๋‚ฌ๋Š”์ง€๋ฅผ ํ™•์ธ ํ›„ api๋ฅผ ๋™์ž‘์‹œํ‚จ๋‹ค.

[ํ”„๋ก ํŠธ์—”๋“œ]: Access Token์˜ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด ์ง€๋‚ฌ๋‹ค๋ฉด ๋ฐฑ์—”๋“œ์— Refresh Token์œผ๋กœ Access Token์„ ์žฌ์š”์ฒญํ•œ๋‹ค.

[๋ฐฑ์—”๋“œ]: Refresh Token์ด DB์— ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„, ๋งž๋‹ค๋ฉด Access Token๊ณผ ์ƒˆ๋กœ์šด Access Token ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

[ํ”„๋ก ํŠธ์—”๋“œ]: ์ƒˆ๋กœ ๋ฐœ๊ธ‰๋ฐ›์€ Access Token์„ ๋งค api ํ˜ธ์ถœ๋งˆ๋‹ค ํ—ค๋”์— ๋ถ™์—ฌ์„œ ์ „์†กํ•œ๋‹ค.

 

 

โœจ์ฐธ๊ณ 

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-Access-Token-Refresh-Token-%EC%9B%90%EB%A6%AC-feat-JWT

 

[WEB] ๐Ÿ“š Access Token & Refresh Token ์›๋ฆฌ (feat. JWT)

Access Token๊ณผ Refresh Token ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ธฐ๋ณธ JWT ๋ฐฉ์‹์˜ ์ธ์ฆ(๋ณด์•ˆ) ๊ฐ•ํ™” ๋ฐฉ์‹์ธ Access Token & Refresh Token ์ธ์ฆ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค. ๋จผ์ € JWT(Json Web Token) ์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๋Š” ๋…์ž๋“ค์€ ๋‹ค์Œ ํฌ

inpa.tistory.com

https://hudi.blog/refresh-token/

 

Access Token์˜ ๋ฌธ์ œ์ ๊ณผ Refresh Token

Access Token์˜ ๋ฌธ์ œ์  ์‚ฌ์šฉ์ž์˜ ์žฆ์€ ๋กœ๊ทธ์•„์›ƒ ๊ฒฝํ—˜ ํ˜„์žฌ ๋‹ฌ๋ก์—์„œ๋Š” Refresh Token์„ ์‚ฌ์šฉ์ค‘์ด์ง€ ์•Š๋‹ค. Access Token ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•œ๋‹ค. ํ˜„์žฌ ๋‹ฌ๋ก์˜ Access Token ์œ ํšจ ๊ธฐํ•œ์€ 24์‹œ๊ฐ„ ์ฆ‰, ํ•˜

hudi.blog

https://han-um.tistory.com/17

 

JWT์˜ ๊ฐœ๋…, ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ํ•ด์•ผ ํ•  ์ผ

์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๊ธฐ์กด์˜ SessionStorage๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋‹ฌ๋ฆฌ, JWT Token์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์ง„ํ–‰ํ•  ๊ฒƒ์„ ์š”๊ตฌํ–ˆ๋‹ค. JWT๋ผ๋Š” ๊ฒƒ์ด ์—ฌ๋Ÿฌ ๊ธ€๋“ค์„ ์‚ดํŽด๋ด๋„ ๋‹ค์†Œ ์žฅํ™ฉํ•˜๊ฒŒ ์„ค๋ช…๋˜์–ด์žˆ๊ณ , ๊ทธ๋ƒฅ

han-um.tistory.com

 

728x90