Friday_July_17
.
.
.
์ ๊ธ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํํ๋ ๊ณผ์ ์ ์์๋ณด์๋ค.
์ด์ ์ธ์ฆ์์ ์ฐ์ด๋ JWT(Json Web Token)์ ์์๋ณด๊ฒ ๋ค.
์ผ๋จ, jwt๊ฐ ์ธ์ฆ์ ์ฐ์ธ๋ค ํ๋๋ฐ, ์ธ์ฆ์ ์ ํ ๊น?
์๋ฅผ ๋ค์ด, ๋ธ๋ก๊ทธ์์ ๊ธ์ ์ฐ๋ ค๋ฉด ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ์ ํด์ผํ๊ณ ,
๋ก๊ทธ์ธ์ ํ ์ฌ์ฉ์๋ง์ด ๊ธ์ ์ธ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ๊ธ์ ์ธ ๋๋ง๋ค ๋งค๋ฒ ๋ก๊ทธ์ธ์ ํด์ค์ผ ํ ๊น?
๊ทธ๋ ๊ฒ ๋๋ฉด ๋๋ฌด ๋ฒ๊ฑฐ๋กญ๋ค.
๊ทธ๋์ ๋ก๊ทธ์ธ์ ํ๋ฉด token์ด๋ผ๋ ๊ณ ์ ์ ๊ฐ์ด ์ฃผ์ด์ง๋ค.
๊ทธ ํ ํฐ์ ๊ฐ๊ณ ์๋ค๋ฉด, ๋ด๊ฐ '๋'๋ผ๋ ๊ฒ์ด ์ธ์ฆ์ด ๋ ๊ฒ์ด๊ณ ,
์ธ์ฆ์ด ๋์์ผ๋ ์ธ์ ๋ ์ง ๊ธ์ ์ธ ์ ์๋ ๊ฒ์ด๋ค.
์ผ๋จ 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์ผ๋ก
ํ์ธํ๋ฉด ๋๋ค.