๐ 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/