๐Ÿ— JWT(Json Web Token)

Min-Ho Leeยท2020๋…„ 7์›” 17์ผ
0

Security

๋ชฉ๋ก ๋ณด๊ธฐ
3/3
post-thumbnail

Friday_July_17
.
.
.

JWT์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์ „ ๊ธ€์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์•Œ์•„๋ณด์•˜๋‹ค.
์ด์ œ ์ธ์ฆ์—์„œ ์“ฐ์ด๋Š” JWT(Json Web Token)์„ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

์ผ๋‹จ, jwt๊ฐ€ ์ธ์ฆ์— ์“ฐ์ธ๋‹ค ํ–ˆ๋Š”๋ฐ, ์ธ์ฆ์„ ์™œ ํ• ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ธ”๋กœ๊ทธ์—์„œ ๊ธ€์„ ์“ฐ๋ ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•˜๊ณ ,
๋กœ๊ทธ์ธ์„ ํ•œ ์‚ฌ์šฉ์ž๋งŒ์ด ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ธ€์„ ์“ธ ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ๋กœ๊ทธ์ธ์„ ํ•ด์ค˜์•ผ ํ• ๊นŒ?
๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กญ๋‹ค.
๊ทธ๋ž˜์„œ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด token์ด๋ผ๋Š” ๊ณ ์œ ์˜ ๊ฐ’์ด ์ฃผ์–ด์ง„๋‹ค.

๊ทธ ํ† ํฐ์„ ๊ฐ–๊ณ ์žˆ๋‹ค๋ฉด, ๋‚ด๊ฐ€ '๋‚˜'๋ผ๋Š” ๊ฒƒ์ด ์ธ์ฆ์ด ๋œ ๊ฒƒ์ด๊ณ ,
์ธ์ฆ์ด ๋˜์—ˆ์œผ๋‹ˆ ์–ธ์ œ๋“ ์ง€ ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

JWT ์‚ฌ์šฉ๋ฒ• & ๊ตฌํ˜„

์ผ๋‹จ Bcrypt์™€ ๋น„์Šทํ•˜๋‹ค.

pip install pyjwt

๋กœ ์„ค์น˜๋ฅผ ํ•ด์ฃผ๋ฉด ๋˜๊ณ ,

import jwt

์ด๋ ‡๊ฒŒ์‚ฌ์šฉ์‹œ์—๋Š” jwt๋งŒ import๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

SECRET = 'wecode'

access_token = jwt.encode({'id':1}, SECRET, algorithm='HS256')
print(access_token)

๊ฒฐ๊ณผ

b'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MX0.LauSzdGeF1YjDLlrS7DMuJaODnbwNlVZa_GIEq7h4BU'

secretํ•œ ํ‚ค๋กœ ํ† ํฐ์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์—, ์œ„์˜ ์˜ˆ์ œ์—์„œ๋Š” ๋ณด์—ฌ์ฃผ๊ธฐ์œ„ํ•ด wecode๋ผ๋Š” ๊ฐ’์„ ๋„ฃ์–ด์„œ ์ ์šฉํ–ˆ์ง€๋งŒ,
์›๋ž˜๋Š” ์ ˆ๋Œ€ ๋ณด์—ฌ์ฃผ์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š” ํŒŒ์ผ์— ์ˆจ๊ฒจ๋†“๊ณ , import๋ฅผ ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์ž ๊ทธ๋Ÿผ token์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด token์œผ๋กœ ๋‚ด๊ฐ€ ์‚ฌ์šฉ์ž(id) 1์ด๋ผ๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”?

header = jwt.decode(access_token, SECRET, algorithm = 'HS256')
print(header)

๊ฒฐ๊ณผ

{'id': 1}

์ด๋ ‡๊ฒŒ ํ† ํฐ๊ณผ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ secret ํ‚ค๋กœ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ํ•ญ์ƒ token์„ ๊ฐ–๊ณ ์žˆ์œผ๋‹ˆ, ์šฐ๋ฆฌ๊ฐ€ ๋งŒ์•ฝ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์‚ฌ์šฉ์ž์˜ token์œผ๋กœ
ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

profile
๐Ÿ‡ Rabbit can take a rest, but ๐Ÿข turtle can't

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