๐ŸŽซ
โ† ๊ฐ€์ด๋“œ ๋ชฉ๋ก์œผ๋กœ

JWT๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? JSON Web Token ์™„๋ฒฝ ๊ฐ€์ด๋“œ

ยท ํƒœ๊ทธ: what-is-jwt, jwt-authentication, jwt-guide, api-security, token-based-auth

JWT๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

JSON Web Token(JWT)์€ ๋‹น์‚ฌ์ž ๊ฐ„์— ์ •๋ณด๋ฅผ JSON ๊ฐ์ฒด๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ž์ฒด ํฌํ•จ๋œ ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€(RFC 7519)์ž…๋‹ˆ๋‹ค. JWT๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ API ๊ถŒํ•œ ๋ถ€์—ฌ๋ถ€ํ„ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ์•ˆ์ „ํ•œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ง€๋ฐฐ์ ์ธ ํ† ํฐ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

JWT ์ธ์ฆ ์ž‘๋™ ๋ฐฉ์‹

JWT ์ธ์ฆ์€ ์„œ๋ฒ„ ์ธก ์„ธ์…˜ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š” ์—†๋Š” ๋ฌด์ƒํƒœ(stateless) ํŒจํ„ด์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด JWT๊ฐ€ ํ˜„๋Œ€ API ๋ณด์•ˆ์˜ ๊ธฐ๋ณธ ์„ ํƒ์ด ๋œ ์ด์œ ๋ฅผ ์ดํ•ดํ•˜๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

์ธ์ฆ ํ๋ฆ„

  1. ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ โ€” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ ์„œ๋ฒ„์— ์ž๊ฒฉ ์ฆ๋ช…(์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ)์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๊ฐ€ JWT ์ƒ์„ฑ โ€” ์„œ๋ฒ„๊ฐ€ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ฒ€์ฆํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ์‹ ์›๊ณผ ๊ถŒํ•œ์„ ํฌํ•จํ•œ JWT๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋น„๋ฐ€ ํ‚ค ๋˜๋Š” ๊ฐœ์ธ ํ‚ค๋กœ ์„œ๋ช…ํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ† ํฐ ์ €์žฅ โ€” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ localStorage, sessionStorage ๋˜๋Š” HTTP-only ์ฟ ํ‚ค์— JWT๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ ์š”์ฒญ์— ํ† ํฐ ํฌํ•จ โ€” ์ดํ›„ ๋ชจ๋“  API ์š”์ฒญ์— ๋Œ€ํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” Bearer ์Šคํ‚ด์„ ์‚ฌ์šฉํ•˜์—ฌ Authorization ํ—ค๋”์— JWT๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค: Authorization: Bearer <token>.
  5. ์„œ๋ฒ„๊ฐ€ ํ† ํฐ ๊ฒ€์ฆ โ€” ์„œ๋ฒ„๊ฐ€ JWT ์„œ๋ช…์„ ๊ฒ€์ฆํ•˜๊ณ , ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ํ™•์ธํ•˜๊ณ , ์‚ฌ์šฉ์ž ํด๋ ˆ์ž„์„ ์ถ”์ถœํ•˜์—ฌ ์š”์ฒญ์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.
  6. ์„ธ์…˜ ์กฐํšŒ ๋ถˆํ•„์š” โ€” JWT์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์บ์‹œ๋ฅผ ์กฐํšŒํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ค‘์š”ํ•œ ์ด์œ 

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

JWT vs ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ

| ํ•ญ๋ชฉ | JWT ์ธ์ฆ | ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ | |--------|--------------------|------------------------------| | ์ €์žฅ ์œ„์น˜ | ํด๋ผ์ด์–ธํŠธ ์ธก (ํ† ํฐ ๋‚ด) | ์„œ๋ฒ„ ์ธก (๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” DB) | | ํ™•์žฅ์„ฑ | ๊ณต์œ  ์„ธ์…˜ ์ €์žฅ์†Œ ๋ถˆํ•„์š” | ์ธ์Šคํ„ด์Šค ๊ฐ„ ๊ณต์œ  ์„ธ์…˜ ์ €์žฅ์†Œ ํ•„์š” | | ๋„๋ฉ”์ธ ๊ฐ„ | ๋„๋ฉ”์ธ ๊ฐ„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ž‘๋™ | ์„ธ์…˜ ๊ณต์œ ๊ฐ€ ์–ด๋ ค์›€ | | ๋ชจ๋ฐ”์ผ ์นœํ™”์„ฑ | ์˜ˆ (์ฟ ํ‚ค ๋ถˆํ•„์š”) | ์ฟ ํ‚ค ์ง€์› ํ•„์š” | | ์ทจ์†Œ | ์–ด๋ ค์›€ (ํ† ํฐ ๋งŒ๋ฃŒ ์ „๊นŒ์ง€) | ์‰ฌ์›€ (์ €์žฅ์†Œ์—์„œ ์„ธ์…˜ ์‚ญ์ œ) | | ํŽ˜์ด๋กœ๋“œ ํฌ๊ธฐ | ์š”์ฒญ๋‹น ๋” ํผ (ํ—ค๋”์— ํ† ํฐ ํฌํ•จ) | ์ตœ์†Œ (์„ธ์…˜ ID๋งŒ) |

JWT๊ฐ€ API ๋ณด์•ˆ์— ์‚ฌ์šฉ๋˜๋Š” ์ด์œ 

JWT๋ฅผ ์ธ์ฆ์— ์ ํ•ฉํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ํŠน์„ฑ์€ API ๋ณด์•ˆ์—๋„ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.

๋ฌด์ƒํƒœ ๋ฐ ํ™•์žฅ์„ฑ

๋ชจ๋“  JWT๋Š” ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์Šน์ธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์กฐํšŒํ•  ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„, ํ™•์ธํ•  ์บ์‹œ๋„, ์„œ๋ฒ„ ๊ฐ„ ๋™๊ธฐํ™”ํ•  ์ƒํƒœ๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋Š” ์กฐ์ • ์—†์ด ์–ด๋–ค ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋กœ๋“  ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ฐ„ ๋ฐ ์ถœ์ฒ˜ ๊ฐ„

JWT๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ๊ณผ ์ถœ์ฒ˜ ๊ฐ„์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. auth.example.com์—์„œ ๋ฐœ๊ธ‰๋œ ํ† ํฐ์„ api.example.com ๋ฐ admin.example.com์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” JWT๊ฐ€ ์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ(SSO) ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

์„ธ๋ถ„ํ™”๋œ ๊ถŒํ•œ ๋ถ€์—ฌ

JWT ํŽ˜์ด๋กœ๋“œ์—๋Š” ์—ญํ• , ๊ถŒํ•œ, ์กฐ์ง ๋ฉค๋ฒ„์‹ญ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ ˆ์ž„์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
  "sub": "user_abc123",
  "role": "admin",
  "permissions": ["read:users", "write:users", "delete:users"],
  "org_id": "org_xyz789",
  "iat": 1516239022,
  "exp": 1516325422
}

API ์„œ๋ฒ„๋Š” ์ถ”๊ฐ€ ์กฐํšŒ ์—†์ด ํ† ํฐ์—์„œ ์ง์ ‘ ์ด๋Ÿฌํ•œ ํด๋ ˆ์ž„์„ ์ฝ์Šต๋‹ˆ๋‹ค.

์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ(SSO)์„ ์œ„ํ•œ JWT

์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ์€ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ JWT ์‚ฌ์šฉ ์‚ฌ๋ก€ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ SSO ์•„ํ‚คํ…์ฒ˜์—์„œ:

  1. ์‚ฌ์šฉ์ž๊ฐ€ Auth0, Okta, Keycloak๊ณผ ๊ฐ™์€ ID ๊ณต๊ธ‰์ž(IdP)์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. IdP๊ฐ€ ๊ฐœ์ธ ํ‚ค๋กœ ์„œ๋ช…๋œ JWT๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉ์ž๊ฐ€ ์ด JWT๋ฅผ ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด IdP์˜ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ช…์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋งค ์š”์ฒญ๋งˆ๋‹ค IdP์™€ ํ†ต์‹ ํ•˜์ง€ ์•Š๊ณ  ํ† ํฐ์„ ์‹ ๋ขฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŒจํ„ด์„ ํ†ตํ•ด ํ•œ ๋ฒˆ์˜ ๋กœ๊ทธ์ธ์œผ๋กœ ์ด๋ฉ”์ผ, ํŒŒ์ผ ์ €์žฅ์†Œ, ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ, HR ์‹œ์Šคํ…œ ๋“ฑ ์ˆ˜์‹ญ ๊ฐœ์˜ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ์„œ๋น„์Šค๊ฐ€ ์ž์ฒด ๋กœ๊ทธ์ธ ํ๋ฆ„์„ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

JWT ๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

JWT๋Š” API ๋ณด์•ˆ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์˜ฌ๋ฐ”๋ฅธ ๊ตฌํ˜„์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

ํ† ํฐ์„ ์งง์€ ์ˆ˜๋ช…์œผ๋กœ ์œ ์ง€

์•ก์„ธ์Šค ํ† ํฐ์˜ exp(๋งŒ๋ฃŒ) ํด๋ ˆ์ž„์„ 15๋ถ„์—์„œ 1์‹œ๊ฐ„ ์‚ฌ์ด์˜ ์งง์€ ๊ธฐ๊ฐ„์œผ๋กœ ์„ค์ •ํ•˜์„ธ์š”. ๋” ๊ธด ์ˆ˜๋ช…์˜ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ(์ˆ˜์ผ ๋˜๋Š” ์ˆ˜์ฃผ)์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์žฌ์ธ์ฆํ•˜์ง€ ์•Š๊ณ ๋„ ์ƒˆ๋กœ์šด ์•ก์„ธ์Šค ํ† ํฐ์„ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์„ธ์š”.

ํ•ญ์ƒ HTTPS ์‚ฌ์šฉ

JWT๋Š” ํŽ˜์ด๋กœ๋“œ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ† ํฐ์„ ๊ฐ€๋กœ์ฑˆ ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜ ๋””์ฝ”๋”ฉํ•˜์—ฌ ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋กœ์ฑ„๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ HTTPS๋ฅผ ํ†ตํ•ด JWT๋ฅผ ์ „์†กํ•˜์„ธ์š”.

๋ชจ๋“  ๊ฒƒ์„ ๊ฒ€์ฆ

ํ•ญ์ƒ ์„œ๋ช…์„ ๊ฒ€์ฆํ•˜๊ณ , ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , aud(audience)๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ† ํฐ์„ ๊ฑฐ๋ถ€ํ•˜์„ธ์š”.

ํ† ํฐ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ๋Š” ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ HTTP-only ์ฟ ํ‚ค์—, ๋˜๋Š” ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— JWT๋ฅผ ์ €์žฅํ•˜์„ธ์š”. ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ† ํฐ์€ localStorage์— ์ €์žฅํ•˜์ง€ ๋งˆ์„ธ์š”.

ํ”ํ•œ JWT ์˜คํ•ด

"JWT๋Š” ์•”ํ˜ธํ™”๋˜์–ด ์žˆ๋‹ค." โ€” ์•„๋‹™๋‹ˆ๋‹ค. JWT๋Š” ์•”ํ˜ธํ™”๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„œ๋ช…๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด๋กœ๋“œ๋Š” base64url๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JWE(JSON Web Encryption)๋Š” ์•”ํ˜ธํ™”๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ํ‘œ์ค€ JWT์™€๋Š” ๋ณ„๊ฐœ์˜ ์‚ฌ์–‘์ž…๋‹ˆ๋‹ค.

"JWT๋Š” CSRF๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค." โ€” ๊ทธ ์ž์ฒด๋กœ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. Authorization ํ—ค๋”์— ํฌํ•จ๋œ JWT๋Š” ๋„์›€์ด ๋˜์ง€๋งŒ, ํ† ํฐ์ด ์ฟ ํ‚ค์— ์žˆ๋Š” ๊ฒฝ์šฐ CSRF ๋ณดํ˜ธ๊ฐ€ ์—ฌ์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

"JWT๋Š” ์ธ์ฆ ์ „์šฉ์ด๋‹ค." โ€” JWT๋Š” ์ธ์ฆ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ์ดํ„ฐ ๊ตํ™˜, ๋ฌด์ƒํƒœ ์„ธ์…˜, ์„œ๋น„์Šค ๊ฐ„ ์•ˆ์ „ํ•œ ์ •๋ณด ๊ณต์œ ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ์œผ๋กœ JWT ๋””์ฝ”๋”ฉ ๋ฐ ํƒ์ƒ‰ํ•˜๊ธฐ

JWT ๋””์ฝ”๋” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  JSON Web Token์„ ๊ฒ€์‚ฌํ•˜์„ธ์š”. ํ† ํฐ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  ๋””์ฝ”๋”ฉ๋œ ํ—ค๋”, ํŽ˜์ด๋กœ๋“œ, ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฆ‰์‹œ ํ™•์ธํ•˜์„ธ์š”. ์ด ๋„๊ตฌ๋Š” ํ† ํฐ์ด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์กฐํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

JWT๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? JSON Web Token ์™„๋ฒฝ ๊ฐ€์ด๋“œ - CoolTool