1 ๋ถ„ ์†Œ์š”

๋กœ๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์‹ - JWT ํ† ํฐ

๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์—๋Š” 3๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

๋ฐฉ์‹
์„ธ์…˜
์ฟ ํ‚ค
jwt

1. JWT

JWT(Json Web Token)๋ž€, Jsonํ˜•์‹์„ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์†์„ฑ(์ •๋ณด)์„ ์ €์žฅํ•˜๋Š” Claim ๊ธฐ๋ฐ˜์˜ Web Token์ด๋‹ค.
ํ† ํฐ ์ž์ฒด๋ฅผ ์ •๋ณด๋กœ ์‚ฌ์šฉํ•˜๋Š” Self-Contained ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-11 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 2 44 18

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

2. JWT ๊ตฌ์กฐ

JWT ๊ตฌ์กฐ
Header
Payload
Signature

Json ํ˜•ํƒœ์ธ ๊ฐ ๋ถ€๋ถ„์€ Base64Url๋กœ ์ธ์ฝ”๋”ฉ ๋˜์–ด ํ‘œํ˜„๋œ๋‹ค.
๋˜, ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์„ ์ด์–ด์ฃผ๊ธฐ ์œ„ํ•ด .๊ตฌ๋ถ„์ž๋ฅผ ์‚ฌ์šฉํ•จ.

๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๋™์ž‘ ์›๋ฆฌ

ํšŒ์›๊ฐ€์ž…
ํšŒ์› ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ด (id, pw, nickname)
ํšŒ์› ์ •๋ณด ์ค‘, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ•ด์‹œํ•จ์ˆ˜๋กœ ์•”ํ˜ธํ™”ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•จ - python ๋‚ด์˜ hashlib๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•จ
๋กœ๊ทธ์ธ
์‚ฌ์šฉ์ž์˜ id, pw๋ฅผ ๋ฐ›์•„์˜ด
๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋˜‘๊ฐ™์ด ํ•ด์‹ฑ - ์•”ํ˜ธํ™” ํ•œ ๊ฐ’์ด ์ €์žฅ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ
id, ํ•ด์‹ฑ๋œ pw๋กœ db๋‚ด์˜ ์œ ์ €๋ฅผ ์ฐพ์Œ
์œ ์ €๋ฅผ ์ฐพ์œผ๋ฉด jwtํ† ํฐ์„ ๋งŒ๋“ค์–ด ๋ฐœ๊ธ‰ (jwtํ† ํฐ ์•ˆ์—๋Š” id, ํ† ํฐ ๋งŒ๋ฃŒ์‹œ๊ฐ„ ๋“ฑ์˜ ์ •๋ณด ํฌํ•จ)
jwtํ† ํฐ์„ ์•”ํ˜ธํ™”ํ•œ ๋‹ค์Œ์— ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋ƒ„
๋ธŒ๋ผ์šฐ์ €์—์„œ jwtํ† ํฐ๊ฐ’์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐ›์•˜์œผ๋ฉด, ๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค(Cookie)์— ์ด ํ† ํฐ๊ฐ’์„ ์ €์žฅํ•จ
์ด ์ฟ ํ‚ค๊ฐ’์ด ์œ ์ง€๋˜๋Š” ๋™์•ˆ, ํšŒ์›์ด ๋ธŒ๋ผ์šฐ์ €์— API๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํšŒ์›์ž„์„ ํ™•์ธ๋ฐ›์Œ (์ฟ ํ‚ค ๊ฐ’์€ ํ•ญ์ƒ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„์— ๋ฌด์–ธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋–„ ๊ฐ™์ด ๋ณด๋‚ด์ง„๋‹ค. -> ์ผ์ข…์˜ ํ”„๋ฆฌํŒจ์Šค๊ถŒ)
๋กœ๊ทธ์•„์›ƒ ์‹œ, ํ•ด๋‹น ํ† ํฐ ์‚ญ์ œ

์ฐธ๊ณ ์ž๋ฃŒ

https://thalals.tistory.com/166

ํƒœ๊ทธ: , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ