๊ฐœ๋ฐœ

JWT ํ† ํฐ์„ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ• ์ดํ•ด

์œจ๋ฌด; 2024. 9. 15. 22:17

JWT ํ† ํฐ์„ ์ด์šฉํ•ด ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์•ž์„œ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•˜์—ฌ ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€์„ ์จ๋ด…๋‹ˆ๋‹ค.

 

์ธ์ฆ๊ณผ ์ธ๊ฐ€

์ธ์ฆ(Authentication)

์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •. (ex. ๋กœ๊ทธ์ธ)

 

์ธ๊ฐ€(Authorization)

์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์ž์› ์ ‘๊ทผ ๊ถŒํ•œ๊ฐ™์€ ๊ฒƒ์„ ํ—ˆ๋ฝํ•˜๋Š” ๊ฒƒ. (ex. ์นดํŽ˜ ๋“ฑ๊ธ‰๋ณ„ ๊ฒŒ์‹œ๋ฌผ)

 

 

HTTP

HTTP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ๋ฐ ๋ฌด์ƒํƒœ์„ฑ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ฆ‰, ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚œ ํ›„์—๋Š” ์š”์ฒญ์„ ํ•œ ํด๋ผ์ด์–ธํŠธ์˜ ์–ด๋– ํ•œ ์ •๋ณด๋„ ๋‚จ๊ธฐ์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง• ๋•๋ถ„์— ์„œ๋ฒ„๋Š” ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ์™€์˜ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š์•„ ์„œ๋ฒ„์˜ ์ž์›๋„ ์•„๋ผ๊ณ  ๋ถ€๋‹ด๋„ ์ ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜, ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ๊ธˆ ์ „ ์š”์ฒญํ•œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋‚ด๋„ ์ด์ „์— ์š”์ฒญํ•œ ํด๋ผ์ด์–ธํŠธ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด ์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ๋˜์—ˆ์–ด๋„ ๋‹ค์Œ ์š”์ฒญ์— ์„œ๋ฒ„๋Š” ๊ทธ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ ๋˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ฒจ๋ฒ„๋ฆฐ๋‹ค.

 

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ Cookie์™€ Session์„ ์ด์šฉํ–ˆ๋‹ค.

 

 

Cookie์™€ Session

Cookie

์ฟ ํ‚ค๋ž€ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ปดํ“จํ„ฐ(์›น ๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅํ•˜๋Š” ์ž‘์€ ์ •๋ณด ํŒŒ์ผ์ด๋‹ค. Key-Value ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์‘๋‹ต ํ—ค๋” ์† Set-Cookie ์†์„ฑ์— ์ฟ ํ‚ค๋ฅผ ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด Set-Cookie ์†์„ฑ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ฟ ํ‚ค๋กœ ๋ณด๋‚ด์–ด ์ด๋ฅผ ํ•„์š”์‹œ ํ™œ์šฉํ•œ๋‹ค.

 

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

 

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

 

ํ•˜์ง€๋งŒ, ๋งค๋ฒˆ ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ฅผ '์ธ์ฆ'ํ•˜๋Š” ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์žˆ๋‹ค.

  • ์ฟ ํ‚ค๋Š” ๋…ธ์ถœ ์‹œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋œ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ์‰ฝ๊ฒŒ ํŽธ์ง‘ํ•ด์„œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ์ œํ•œ์ ์ด๋‹ค.

 

Session

๊ทธ๋ž˜์„œ ๋‚˜์˜จ ๊ฒƒ์ด ๋ฐ”๋กœ Session์ด๋‹ค. ์‹ค์ƒ ์ฟ ํ‚ค๋กœ ์œ ์ €์˜ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๋Š” ์ „์ œ๋Š” ๋™์ผํ•˜๋‹ค. ํ•˜์ง€๋งŒ, ์„ธ์…˜์€ ๊ฐ ํด๋ผ์ด์–ธํŠธ ๋ณ„๋กœ Session ID๋ผ๋Š” ๊ฒƒ์„ ๋ถ€์—ฌํ•ด ์ด๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•ด๋‘๊ณ  ์ฟ ํ‚ค๋กœ ์ „๋‹ฌํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ ์‹œ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 

Session ID๋Š” ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ผ์ • ์‹œ๊ฐ„ ํ˜น์€ ์ƒˆ๋กœ์šด ์ ‘์† ์‹œ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ ์œ ์ € ์ •๋ณด๋งŒ์„ ์ „๋‹ฌ๋ฐ›๋˜ ์ฟ ํ‚ค๋ณด๋‹ค๋Š” ์•ˆ์ „ํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์„œ๋ฒ„์—์„œ ์ด๋Ÿฐ ์„ธ์…˜ ์ •๋ณด๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์œ ์ € ์ •๋ณด์— ๋”ํ•ด์„œ ์„ธ์…˜ ID๋ฅผ ์ €์žฅํ•ด์•ผํ•œ๋‹ค๋Š” ๋ถ€๋‹ด์ด ์žˆ๋‹ค.

 

 

JWT

JWT๋Š” Json ๊ฐ์ฒด์— ์ธ์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ๋‹ด์•„ ์•”ํ˜ธํ™” ์‹œํ‚จ ํ† ํฐ์„ ์˜๋ฏธํ•œ๋‹ค.

JWT ํ† ํฐ์„ HTTP ํ—ค๋”๋‚˜ URL ํŒŒ๋ผ๋ฏธํ„ฐ์— ์‹ค์–ด ๋ณด๋ƒ„์œผ๋กœ์จ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ธ๊ฐ€, ์ธ์ฆ ๊ณผ์ •์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. Session ID์™€ ๋‹ฌ๋ฆฌ ๊ฐœ์ธํ‚ค๋ฅผ ํ†ตํ•œ ์ „์ž์„œ๋ช…์ด ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์ด ์œ„์˜ ๋‘ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋›ฐ์–ด๋‚˜๋‹ค.

 

JWT ๊ตฌ์กฐ

JWT ํ† ํฐ ๊ตฌ์กฐ (jwt.io)

JWT๋Š” . ์„ ๊ตฌ๋ถ„์ž๋กœ 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.

Header.Payload.Signature

 

Header์—๋Š” ํ† ํฐ์˜ ํƒ€์ž…๊ณผ ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์ •ํ•œ๋‹ค. ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‚˜์ค‘์— Signature๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•œ๋‹ค.

Payload์—๋Š” ์„œ๋ฒ„์—์„œ ๋‹ด๊ณ ์žํ•˜๋Š” ์‚ฌ์šฉ์ž ๊ถŒํ•œ ์ •๋ณด ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.

Signature์—๋Š” Header์™€ Payload๋ฅผ Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์ด ๊ฐ’๋“ค์„ Header ์† ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„๋ฐ€ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ ๊ฐ’์ด ๋‹ด๊ธด๋‹ค.

 

์ •๋ณด ใ…ก payload

payload์—๋Š” ์„œ๋ฒ„๊ฐ€ ํ† ํฐ์— ๋‹ด์„ ์ •๋ณด๋“ค์ด ์žˆ๋‹ค. ๋‹ด๋Š” ์ •๋ณด์˜ ํ•œ ์กฐ๊ฐ์„ ํด๋ ˆ์ž„(claim)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์ด๋Š” name: value ๊ผด๋กœ ๋˜์–ด์žˆ๋‹ค. ์œ„์˜ ์‚ฌ์ง„์—์„œ "sub": "1234567890"์ด ํ•˜๋‚˜์˜ ํด๋ ˆ์ž„์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

ํด๋ ˆ์ž„ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  1. registered
  2. public
  3. private

 

registered

registered ํด๋ ˆ์ž„๋“ค์€ ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์•„๋‹Œ ํ† ํฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ์ฆ‰, ์ด๋ฏธ ์•ฝ์†๋˜์–ด ์ด๋ฆ„์ด ์ •ํ•ด์ง„ ํด๋ ˆ์ž„๋“ค์ด๋‹ค.

  • iss : ํ† ํฐ ๋ฐœ๊ธ‰์ž
  • sub : ํ† ํฐ ์ œ๋ชฉ
  • aud : ํ† ํฐ ๋Œ€์ƒ์ž
  • exp : ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„
  • nbf : ํ† ํฐ ํ™œ์„ฑ ๋‚ ์งœ
  • iat : ํ† ํฐ ๋ฐœ๊ธ‰ ์‹œ๊ฐ„
  • jti : JWT์˜ ๊ณ ์œ  ์‹๋ณ„์ž

 

public

ํ•ด๋‹น ํด๋ ˆ์ž„์€ ์ถฉ๋Œ์ด ๋ฐฉ์ง€๋œ ์ด๋ฆ„์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด ํด๋ ˆ์ž„ ์ด๋ฆ„์„ URI ํ˜•์‹์œผ๋กœ ์ง“๋Š”๋‹ค.

 

private

๋น„๊ณต๊ฐœ ํด๋ ˆ์ž„์€ ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ ˆ์ž„์ด๋ฉฐ, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์— ์•ฝ์†๋œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

์„œ๋ช… ใ…ก signature

์ด ๊ฐ’์€ ํ—ค๋”์™€ ์ •๋ณด๋ฅผ ๊ฐ๊ฐ base64๋กœ ์ธ์ฝ”๋”ฉํ•œ ํ›„ ๋‘˜ ๊ฐ’์„ ํ•ฉํ•ด ๋น„๋ฐ€ํ‚ค๋กœ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฑฐ์ณ ์ƒ์„ฑํ•œ๋‹ค. ์œ„์˜ ์‚ฌ์ง„๋Œ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secretKey
)

 

๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๋‚˜์˜จ ๊ฐ’์„ base64๋กœ ์ธ์ฝ”๋”ฉ ํ•˜์—ฌ, ๋งจ ๋’ค์— ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์„œ๋ช…์„ ํ†ตํ•ด JWT ํ† ํฐ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ์ด๋ฃจ์–ด๋‚ธ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•ด์„œ ์ตœ์ข…์ ์œผ๋กœ ์ด๋Ÿฐ ํ˜•ํƒœ์˜ JWT ํ† ํฐ์ด ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ง„๋‹ค.

 

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

 

๊ทผ๋ฐ ํ† ํฐ์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์„ ๋ณด๋ฉด ๊ฒฐ๊ตญ Payload์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด base64๋กœ ์ธ์ฝ”๋”ฉ ๋˜์–ด์žˆ์„ ๋ฟ ๋…ธ์ถœ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— payload์—๋Š” ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์ง€ ์•Š์•„์•ผํ•œ๋‹ค. ๋˜ํ•œ, ์ฟ ํ‚ค๋‚˜ Session ID์— ๋น„ํ•ด ํ† ํฐ์˜ ๊ธธ์ด๊ฐ€ ์ƒ๋‹นํžˆ ๊ธด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ •๋ณด๊ฐ€ ๋งŽ์•„์งˆ ์ˆ˜๋ก ํ† ํฐ์˜ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚˜ ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

 

JWT ๊ณผ์ •

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ DB์—์„œ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  3. ์ผ์น˜ํ•œ๋‹ค๋ฉด ์„œ๋ฒ„๋Š” ๋น„๋ฐ€ ํ‚ค๋กœ json ๊ฐ์ฒด๋ฅผ ์•”ํ˜ธํ™”ํ•ด JWT ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•œ๋‹ค.
  4. JWT ํ† ํฐ์„ ํ—ค๋”์— ๋‹ด์•„ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ธ๋‹ค.
  5. ํด๋ผ์ด์–ธํŠธ๋Š” ์ด๋ฅผ ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ์š”์ฒญ ์‹œ๋งˆ๋‹ค JWT ํ† ํฐ์„ ํ•จ๊ป˜ ๋ณด๋‚ธ๋‹ค.
  6. ์„œ๋ฒ„๋Š” ๋งค๋ฒˆ ํ—ค๋”๋ฅผ ํ™•์ธํ•ด ์„œ๋ฒ„์—์„œ ๋ฐœํ–‰ํ•œ ํ† ํฐ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์‘๋‹ตํ•œ๋‹ค.

 

ํ—ค๋”์— ๋„ฃ์–ด๋ณด๋‚ผ ๋•Œ์—๋Š” Authorization ํ—ค๋”์— ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค. bearer๋ฅผ ์•ž์— ๋ถ™์—ฌ์ฃผ๋Š”๋ฐ ์ด๋Š” JWT ํ† ํฐ ๋˜๋Š” OAuth ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

{
  "Authorization": "Bearer " + {ํ† ํฐ ๊ฐ’}
}