์ธ์
Session based Auth flow- ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋๋ค ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํ๋ค.
- ๋ก๊ทธ์ธ์ด ์ ์ง๋ ์์๋๋ก ์ฟ ํค์ ์ธ์ ID๋ฅผ ์ ์ฅํ์ฌ์ ๊ธฐ์ตํ๊ณ ์๋ค๊ฐ ์ดํ ํ์ธํ๊ณ ๋ก๊ทธ์ธ์ ์ ์ง์์ผ์ค๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ์๋ฒ๊ฐ ๋ฌธ์ ๊ฐ์๊ฒจ์ ๊บผ์ ธ๋ฒ๋ฆฌ๋ฉด ์ฃ๋ค ๋ ๋ผ๊ฐ๋ฒ๋ฆฐ๋ค. (ํ๋ฐ์ฑ)
โ ๋ณด์ํ๊ธฐ์ํด "ํ ํฐ" โ JWT (JSON WEB TOKEN)
- Stateful
- ํด๋ผ์ด์ธํธ ํต์ ๋ฅผ ํ ์์๋ค
ํ๊ธฐ๊ธฐ์์๋ง ๋ก๊ทธ์ธํ ์์๊ฒ ๋ง๋๋ ค๋ฉด, ๊ธฐ์กด ์ธ์
์ ์ข
๋ฃํ๋ค.(์๋ฒ๊ฐ ๊ฐ๊ณ ์๋ ์ ๋ณด๋ฅผ ๋ฒ๋ฆฌ๋ฉด๋๋ค) JWT๋ฐฉ์์ ์๋ฒ๊ฐ ๊ฐ๊ณ ์๋๊ฒ ์๊ธฐ๋๋ฌธ์ ์ด๋ป๊ฒ ํ ์๊ฐ์์
ํ ํฐ
Token Based Auth flow (JWT)- ํด๋ผ์ด์ธํธ์๋ง ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํ๊ฒ ํ๋ค.(์๋ฒ๋ ๊ธฐ์ต์ํจ)
- ํ ํฐ : xxxxxx.yyyyyyyyyyy.zzzzzzzzzzzzz
โ yyyyy === ํ ํฐ์ ๋ด๊ธด ์ฌ์ฉ์์ ์ ๋ณด (ํ์ด๋ก๋): ํด๋ ์
โ xxxxx === ํค๋, ํ์
๋ฑ์ ์ ๋ณด
โ zzzzz === ์ํธํ๋ฐฉ์ , HS256 ๋ฑ์ ์ ๋ณด
- ์๊ฐ์๋ฐ๋ผ ์ํ๊ฐ์ด ๋ฐ๋์ง์๋ Stateless
- JWT๋จ์ : ์ธ์ ์ ํด๋ผํต์ ๋ฅผ ํ ์์์ง๋ง ํ ํฐ์ ๋ถ๊ฐํ๋ค
๋ณด์๋ฐฉ๋ฒ : refreshToken
ํ ํฐ์ ๋๊ฐ(AccessToken, RefreshToken)๋ฅผ ์ฃผ๊ณ ๊ธฐ์กด ํ ํฐ(Accesstoken)์ ๋ง๋ฃ์๊ฐ์ ์์ฃผ ์งง๊ฒ(๋ช์๊ฐ์ ๋)ํ๋ค.
RefreshToken์ ๋ง๋ฃ์๊ฐ์ 2์ฃผ~1๋ฌ ์ ๋ refreshtoken์ ํด๋ผ์ด์ธํธ์๊ฒ ๋๊ฒจ์ฃผ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ ์ฅํ๋ค.
ํด๋ผ์ด์ธํธ์ accesstoken์ด ๋ง๋ฃ๋๋ฉด refreshtoken์์ฒญ์ ํ๊ณ , ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ refreshtoken๊ณผ ๋์กฐํด๋ณด๊ณ ๊ฐ๋ค๋ฉด ์๋ก์ด accesstoken์ ๋ฐ๊ธํด์ ๋ค์ ํด๋ผ์๊ฒ ๋ณด๋ด์ค๋ค.