What is ๐ŸŽŸ Token

shleecloudยท2021๋…„ 10์›” 25์ผ
0

Security

๋ชฉ๋ก ๋ณด๊ธฐ
6/6

๐ŸŽŸ Token

๊ธฐ์กด ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ, ์ธ์ฆ์„ ์œ„ํ•œ ์•”ํ˜ธํ™”๋œ ๊ธด ๋ฌธ์ž์—ด

Token์˜ ํŠน์ง•

  • ํ† ํฐ์€ ํด๋ผ์ด์–ธํŠธ์— ์ธ์ฆ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • ํ† ํฐ์€ ์œ ์ € ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•œ ์ƒํƒœ๋กœ ๋‹ด์„ ์ˆ˜ ์žˆ๊ณ , ์•”ํ˜ธํ™”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์— ๋‹ด์„ ์ˆ˜ ์žˆ์Œ.

์žฅ์ 

  • ๋ณ„๋„์˜ ์ธ์ฆ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”์—†์Œ
  • ์ฟ ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์•„๋„ ๋จ
    • ์ฟ ํ‚ค๋ฅผ ํ†ตํ•œ ๊ณต๊ฒฉ์—์„œ ์ž์œ ๋กœ์›€
  • ํ™•์žฅ์„ฑ์ด ์ข‹์Œ
    • ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ˆ˜ํ‰์  ํ™•์žฅ์ด ์ž์œ ๋กœ์›€
    • ์„ธ์…˜๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ธ์ฆ์„ ๋ฐ›์€ ์„œ๋ฒ„๋ฅผ ํ•ญ์ƒ ๊ฑฐ์น˜์ง€ ์•Š์Œ
    • ํŠธ๋ž˜ํ”ฝ๊ณผ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ๋‚ฎ์Œ

๋‹จ์ 

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

Access Token

  • access token์ด ํƒˆ์ทจ๋˜๋ฉด ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋Œ€๋กœ ๋กœ๊ทธ์ธ ํ•  ์ˆ˜ ์žˆ์Œ
    • ๋”ฐ๋ผ์„œ ์œ ํšจ ๊ธฐ๊ฐ„(expire-time)์„ ์งง๊ฒŒ ๋ถ€์—ฌ (30๋ถ„)
    • ๋งŒ๋ฃŒ๋  ๊ฒฝ์šฐ refresh token์œผ๋กœ ํ† ํฐ์„ ๋‹ค์‹œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ (2์ฃผ)
    • Refresh Token์ด ํƒˆ์ทจ๋œ๋‹ค๋ฉด?

Refresh Token

  • Refresh Token์€ ๋ณด์•ˆ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š”๋‹ค.
  • Refresh Token ํƒˆ์ทจ๋ฅผ ์šฐ๋ คํ•˜์—ฌ ์•„์˜ˆ ์•ˆ์“ฐ๋Š” ๊ณณ๋„ ์žˆ์Œ (ex StackOverFlow)
  • Refresh Token์„ Session์ฒ˜๋Ÿผ DB์— ์ €์žฅํ•˜๊ธฐ๋„ ํ•จ
    • ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ์žฌ์ƒ์„ฑ์ด ๊ฐ€๋Šฅ

JWTํ† ํฐ์˜ ํƒˆ์ทจ๋Š” ๋ณดํ†ต ํด๋ผ์ด์–ธํŠธ์ธก์—์„œ ์ด๋ฃจ์–ด์ง€๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ๊ณ ํ•œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ์˜ PC๊ฐ€ ํ•ดํ‚น๋˜์—ˆ๋‹ค๋ฉด ์„œ๋ฒ„์—์„œ ๋”์ด์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ์—†์œผ๋ฉฐ, ๋ณดํ†ต์€ ๊ณต์œ ๊ธฐ ๋“ฑ์˜ ๋„คํŠธ์›Œํฌ์ชฝ์—์„œ ํƒˆ์ทจ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌํ”„๋ ˆ์‹œํ† ํฐ์ด ์˜์˜์žˆ๋‹ค๊ณ  ํ•˜์…จ๋‹ค.
์ถœ์ฒ˜: https://tuigun.tistory.com/85 [ํ‡ด๊ทผ ํ›„ ๊ฐœ๋ฐœ๊ณต๋ถ€]

๐Ÿฅง JWT

๋‘ ๊ฐœ์ฒด์—์„œ JSON ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋ณ๊ณ  ์ž๊ฐ€์ˆ˜์šฉ์ ์ธ (self-contained) ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์•ˆ์ „์„ฑ ์žˆ๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹

JWT ์ž‘์—… ํ๋ฆ„

๐Ÿ’ป JWT ๊ตฌํ˜„

Login

Refresh Token

myInfo

Logout

์ฐธ์กฐ URL

https://blog.logicwind.com/jwt-refresh-token-implementation-in-node-js/

profile
๋ธ”๋กœ๊ทธ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. https://shlee.cloud

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