๐ŸŒฟSpring

[Spring Security] #2 ์ธ์ฆ ๋ฐฉ์‹: ์ฟ ํ‚ค vs ์„ธ์…˜ vs JWT

์†Œ์˜ ๐Ÿ€ 2025. 5. 14. 23:03

 

์˜ค๋Š˜์€ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐฉ์‹์ธ ์ฟ ํ‚ค vs ์„ธ์…˜ vs JWT ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๋“ค์€ ๊ฐ•์˜์—์„œ๋Š” ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ํ•ฉ์ณ ์„ค๋ช…ํ–ˆ๋Š”๋ฐ

๋ธ”๋กœ๊ทธ๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ ์กฐ์‚ฌ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ๊ตฌ๋ถ„์ง“๋Š” ๋ถ„๋“ค์ด ๋งŽ์œผ์‹œ๋”๋ผ๊ณ ์š”.

์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ข…ํ•ฉํ•˜์—ฌ ์จ๋ด…๋‹ˆ๋‹ค.

 

๋จผ์ € ์ฝ์œผ๋ฉด ์ข‹์€ ๊ธ€: ์ธ์ฆ๊ณผ ์ธ๊ฐ€ ๊ฐœ๋… https://syleeblog.tistory.com/40


 

๐Ÿช ์ฟ ํ‚ค ๋ฐฉ์‹

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

์ถœ์ฒ˜: MDN WEB DOCS

 

 

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์ธ์ฆ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„์—์„œ๋Š” ์ ํ•ฉํ•œ ์œ ์ €์ธ์ง€ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

3. ์ธ์ฆ์ด ์™„๋ฃŒ๋˜๋ฉด ์ฟ ํ‚ค์— ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด(์œ ์ € ID๋‚˜ ์ธ๋ฑ์Šค ๋“ฑ ์ด ์œ ์ €๋ฅผ ์ธ์ฆํ•œ ์ •๋ณด/์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด)๋ฅผ ๋‹ด์•„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

4. ํด๋ผ์ด์–ธํŠธ ์ฟ ํ‚ค์— ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋์Šต๋‹ˆ๋‹ค.

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

 

์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๊ฐ€ ์ €์žฅํ•˜์ง€ ์•Š๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ €์žฅํ•œ ํ›„ ์š”์ฒญ๋งˆ๋‹ค ์ธ์ฆ ์ •๋ณด๋ฅผ ์ฟ ํ‚ค์— ๋‹ด์•„ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„œ๋ฒ„๊ฐ€ ์ธ์ฆ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ "Stateless(๋ฌด์ƒํƒœ)"ํ•˜๋‹ค๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ ‡๊ฒŒ ๋‹จ์ˆœํ•œ ์ฟ ํ‚ค ๋ฐฉ์‹์€ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฟ ํ‚ค์˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์œ„์กฐํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


๐Ÿ—‚๏ธ ์„ธ์…˜ ๋ฐฉ์‹

์„ธ์…˜์€ ๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ)์™€ ์›น ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€์˜ ์‹œ์ ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•  ๋•Œ

์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์ž์ž„์ด ์ธ์ฆ๋˜๋ฉด ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋ฅผ ๋‹ด์•„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ ์‹œ ์ฟ ํ‚ค์— ์ €์žฅ๋œ ์„ธ์…˜ ID๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

1. ํด๋ผ์ด์–ธํŠธ์—์„œ ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž ์‹๋ณ„ ํ›„ ์„œ๋ฒ„์— ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

3. ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋ฅผ ๋‹ด์•„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ธ์…˜ ID๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒˆ๋กœ์šด ์ธ๊ฐ€ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.

5. ์„œ๋ฒ„์—์„œ๋Š” ์„ธ์…˜ ID๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„œ๋ฒ„์— ์ €์žฅ๋œ ์ธ์ฆ ์ •๋ณด๋ฅผ ํ™•์ธ ํ›„ ์ธ๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

 

์•„๋ž˜ ์ฝ”๋“œ์—์„œ session.setAttribute๋กœ ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@PostMapping("/login")
public ResponseEntity<?> login(LoginDto dto,
                               HttpSession session) {
    User u = service.verify(dto.email(), dto.password());
    session.setAttribute("LOGIN_ID", u.id()); 
    return ResponseEntity.ok("login ok");
}

 

 

์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜ ๋ฐฉ์‹์—์„œ๋Š” ์„œ๋ฒ„๊ฐ€ ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ์ ์ด ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.

 

์„ธ์…˜์ด ์œ ์ง€๋˜๋Š” ๋™์•ˆ์€ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ณ„์† ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋А ๋ถ€๋ถ„์ด ๊ณ„์† ์ ์œ ๋‹นํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์„ Stateful(์ƒํƒœ ์œ ์ง€)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋•Œ๋ฌธ์— Redis(key- value ๊ตฌ์กฐ์˜ ๊ณ ์„ฑ๋Šฅ ์ €์žฅ์†Œ)์— ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. 

 

์„ธ์…˜ ๋ฐฉ์‹์˜ ์žฅ์ 

  • ์„œ๋ฒ„์—์„œ ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์ฟ ํ‚ค ๋ฐฉ์‹๋ณด๋‹ค ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ๋ถ™์—ฌ์ฃผ๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ๋Š” CSRF ํ† ํฐ ์ „๋žต๋งŒ ๋งˆ๋ จํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    • CSRF ํ† ํฐ์ด๋ž€ ๋กœ๊ทธ์ธ ์‹œ ์„œ๋ฒ„๊ฐ€ ๋ฐœํ–‰ํ•ด์ฃผ๋Š” ํ† ํฐ์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ์™€ ๊ณต์œ ๋˜๋Š” ์ธ์ฆ ๊ฐ’์ž…๋‹ˆ๋‹ค.
      ํด๋ผ์ด์–ธํŠธ๋Š” ์˜ฌ๋ฐ”๋ฅธ ํ† ํฐ ๊ฐ’์„ ํฌํ•จํ•ด์•ผ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„ ์ธก์—์„œ ์„ธ์…˜์„ ์‰ฝ๊ฒŒ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋А ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋ณด์ด๋ฉด ๋ฐ”๋กœ ๋กœ๊ทธ์•„์›ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๊ฑฐ์ฃ .

์„ธ์…˜ ๋ฐฉ์‹์˜ ๋‹จ์ 

  • ์„œ๋ฒ„์— ์ธ์ฆ ์ •๋ณด๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ Redis ๋“ฑ ์„ธ์…˜ ์ €์žฅ์†Œ ์šด์˜ ๋น„์šฉ ๋ถ€๋‹ด์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋ฐ”์ผ ์•ฑ์ด๋‚˜ SPA์—์„œ๋Š” ์ฟ ํ‚ค ๋‹ค๋ฃจ๊ธฐ๊ฐ€ ๋ฒˆ๊ฑฐ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • SPA๋ž€? Single Page Application์œผ๋กœ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ ,
      ํ•„์š”ํ•œ ์ปจํ…์ธ ๋ฅผ ์„œ๋ฒ„์—์„œ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๊ฐ€์ ธ์™€ ํ˜„์žฌ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ชจ๋˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.

๐Ÿช™ JWT ๋ฐฉ์‹

JWT ๋ฐฉ์‹์€ ํ† ํฐ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

JWT๋Š” Json Web Token์˜ ์•ฝ์ž๋กœ, ์•„์ฃผ ๊ธด ๋ฌธ์ž์—ด๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„์—์„œ๋Š” ์ธ์ฆ ํ›„ ์‘๋‹ต์— ํ† ํฐ์„ ๋‹ด์•„ (ํ—ค๋” ๋˜๋Š” ์ฟ ํ‚ค๋กœ)  ๋ณด๋ƒ…๋‹ˆ๋‹ค.

3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ํ† ํฐ์„ ์–ด๋”˜๊ฐ€(๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ)์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

4. ํด๋ผ์ด์–ธํŠธ๋Š” ์ดํ›„ ์ธ๊ฐ€ ์š”์ฒญ ์‹œ๋งˆ๋‹ค ํ† ํฐ์„ ํ•จ๊ป˜ ๋‹ด์•„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

5. ์„œ๋ฒ„์—์„œ๋Š” ์˜ฌ๋ฐ”๋ฅธ ํ† ํฐ์ธ์ง€ ํ™•์ธ ํ›„ ์ธ๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด์ „ ๋ฐฉ์‹๋“ค๊ณผ์˜ ์ฐจ์ด์ ์€ ์ฟ ํ‚ค๊ฐ€ ์•„๋‹Œ JWT ํ† ํฐ์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค๋Š” ์ ๊ณผ

ํ† ํฐ์—๋Š” ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์žˆ๊ณ , ์„œ๋ฒ„์—์„œ ์•„์ง ๋งŒ๋ฃŒ์‹œ๊ฐ„์ด ๋‚จ์•˜๋Š”์ง€, ์‚ฌ์šฉ์ž๊ฐ€ ๋งž๋Š”์ง€ ๋“ฑ ์œ ํšจํ•œ ํ† ํฐ์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

 

์ด ํ† ํฐ์€ ์ด ์„œ๋ฒ„์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์‹œํฌ๋ฆฟ ํ‚ค๋ผ๋Š” ํŠน์ดํ•œ ๊ฐ’๊ณผ ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์— ๋”ฐ๋ผ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ, ์‹œ๊ทธ๋‹ˆ์ฒ˜๋กœ ๊ตฌ์„ฑ์ด ๋˜๋Š”๋ฐ ์˜ค๋Š˜ ๊ธ€์—์„œ๋Š” JWT ํ† ํฐ ๋งŒ๋“œ๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์„œ๋ฒ„์—์„œ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ ์ธ์ฆ ์š”์ฒญ์—์„œ๋งŒ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜๊ณ ,  ์ดํ›„ ์š”์ฒญ์—์„œ๋Š” ๋Š˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ† ํฐ์„ ๋‹ด๊ณ  ์š”์ฒญ์„ ํ•˜๋‹ˆ

๋งค๋ฒˆ ํ† ํฐ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ Stateless ํ•ฉ๋‹ˆ๋‹ค.

 

JWT ๋ฐฉ์‹์˜ ์žฅ์ 

  • ์„œ๋ฒ„๋Š” Statelessํ•˜๊ธฐ ๋•Œ๋ฌธ์—  ์„œ๋ฒ„ ์ธก์˜ ๋ถ€ํ•˜๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€ ํ™•์žฅ๋˜์–ด๋„, ์„ธ์…˜ ๊ณต์œ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • API ๊ฒŒ์ดํŠธ์›จ์ด๋‚˜ ๋ชจ๋ฐ”์ผ ๋„ค์ดํ‹ฐ๋ธŒ ์—ฐ๋™์ด ์„ธ์…˜์— ๋น„ํ•ด ์ˆ˜์›”ํ•ฉ๋‹ˆ๋‹ค.

 

JWT ๋ฐฉ์‹์˜ ๋‹จ์ 

  • ํ† ํฐ์ด ํƒˆ์ทจ๋‹นํ•˜๋ฉด ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ํ•ด์ปค๋ฅผ ๋ง‰์„ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ํ•œ ๋ฒˆ ๋ฐœ๊ธ‰๋œ ํ† ํฐ์€ ์•Œ์•„์„œ ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ์ˆ˜์ •์ด๋‚˜ ํ๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์งง์€ AccessToken๊ณผ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ๊ธด Refresh Token์„ ๋‘˜ ๋‹ค ๋ฐœ๊ธ‰ํ•˜๊ณ , AccessToken ๋งŒ๋ฃŒ ์‹œ Refresh Token์„ ์ด์šฉํ•ด Access Token์„ ์ƒˆ๋กœ ๋ฐœ๊ธ‰ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌ๋ฉด AccessToken์ด ํƒˆ์ทจ๋˜์–ด๋„ ๊ธˆ๋ฐฉ ๋งŒ๋ฃŒ๋ ํ…Œ๋‹ˆ ํ•ด์ปค๊ฐ€ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ์งง์•„์ง‘๋‹ˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€์ˆ˜0