Skip to content

Latest commit

ย 

History

History
78 lines (64 loc) ยท 3.9 KB

Token.md

File metadata and controls

78 lines (64 loc) ยท 3.9 KB

Token ๐ŸŽซ

1. Token ์ด๋ž€?

  • ํ† ํฐ์ด๋ž€

    • ์ธ์ฆ๊ณผ ๊ถŒํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด
    • ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ ๊ถŒํ•œ ๋ถ€์—ฌ ๊ฐ€๋Šฅ
    • ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ, ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ €์žฅ ๊ฐ€๋Šฅ
  • ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์˜ ํ๋ฆ„

    1. ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์š”์ฒญ
    2. ์„œ๋ฒ„๋Š” DB์— ์ €์žฅ๋œ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ์ •๋ณด ํ™•์ธ
    3. ์ธ์ฆ์— ์„ฑ๊ณตํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์˜ ๋น„๋ฐ€ ํ‚ค์™€ ํ•จ๊ป˜ ํ† ํฐ์œผ๋กœ ์•”ํ˜ธํ™”
    4. ์ƒ์„ฑ๋œ ํ† ํฐ์„ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌ
      • HTTP ์ƒ์—์„œ ์ธ์ฆ ํ† ํฐ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด Authorization ํ—ค๋” ์‚ฌ์šฉ or ์ฟ ํ‚ค๋กœ ์ „๋‹ฌ
    5. ํด๋ผ์ด์–ธํŠธ๋Š” ์ „๋‹ฌ๋ฐ›์€ ํ† ํฐ ์ €์žฅ
    6. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฆฌ์†Œ์Šค ์š”์ฒญ ์‹œ ํ† ํฐ์„ ํ•จ๊ป˜ ์ „๋‹ฌ
      • ํ† ํฐ์„ ๋ณด๋‚ผ ๋•Œ์—๋„ Authorization ํ—ค๋”๋ฅผ ์‚ฌ์šฉ or ์ฟ ํ‚ค๋กœ ์ „๋‹ฌ
    7. ์„œ๋ฒ„๋Š” ์ „๋‹ฌ๋ฐ›์€ ํ† ํฐ์„ ์„œ๋ฒ„์˜ ๋น„๋ฐ€ ํ‚ค๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆ (ํ† ํฐ ์œ„์กฐ ์—ฌ๋ถ€์™€ ์œ ํšจ๊ธฐ๊ฐ„ ๋“ฑ ํ™•์ธ ๊ฐ€๋Šฅ)
    8. ํ† ํฐ์ด ์œ ํšจํ•˜๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์ „์†ก

2. Token์˜ ํŠน์ง•

  • ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์˜ ์žฅ์ 

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

    • ๋ฌด์ƒํƒœ์„ฑ
      • ํ† ํฐ์ด ํƒˆ์ทจ๋˜์–ด๋„ ํ•ด๋‹น ํ† ํฐ์„ ๊ฐ•์ œ๋กœ ๋งŒ๋ฃŒ์‹œํ‚ฌ ์ˆ˜ ์—†์Œ
    • ์œ ํšจ๊ธฐ๊ฐ„
      • ์œ ํšจ๊ธฐ๊ฐ„์„ ์งง๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋งŒ๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€
      • ์œ ํšจ๊ธฐ๊ฐ„์„ ๊ธธ๊ฒŒ ์„ค์ •ํ•˜๋ฉด ํ† ํฐ ํƒˆ์ทจ ์‹œ ์œ„ํ—˜
    • ํ† ํฐ์˜ ํฌ๊ธฐ
      • ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์œผ๋ฉด ํ† ํฐ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ๋น„์šฉ ๋ฌธ์ œ ์ƒ๊น€

3. JWT (JSON Web Token)

  • JWT๋ž€

    • JSON ๊ฐ์ฒด์— ์ •๋ณด๋ฅผ ๋‹ด๊ณ , ์ด๋ฅผ ํ† ํฐ์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๊ธฐ์ˆ 
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, ์ธ์ฆ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”๋œ JWT ํ† ํฐ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ , ์„œ๋ฒ„๋Š” ์ด ํ† ํฐ์„ ๊ฒ€์ฆํ•ด ์ธ์ฆ์ •๋ณด ํ™•์ธ
  • JWT์˜ ๊ตฌ์„ฑ

    • Header
      • ํ† ํฐ ์ž์ฒด๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ ์žˆ์Œ
    • Payload
      • ์–ด๋–ค ์ •๋ณด์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ๊ถŒํ•œ, ์œ ์ €์˜ ๊ฐœ์ธ์ •๋ณด, ํ† ํฐ์˜ ๋ฐœ๊ธ‰ ์‹œ๊ฐ„ ๋ฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ๋“ฑ
    • Signature
      • ํ† ํฐ์˜ ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ ๊ฐ€๋Šฅ
      • Header์™€ Payload๊ฐ€ ์™„์„ฑ๋˜์—ˆ๋‹ค๋ฉด, ์„œ๋ฒ„์˜ ๋น„๋ฐ€ ํ‚ค(์•”ํ˜ธํ™”์— ์ถ”๊ฐ€ํ•  salt)์™€ Header์—์„œ ์ง€์ •ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด์‹ฑ

4. Access Token๊ณผ Refresh Token

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