ํ์ฌ ํ๋ก์ ํธ์์๋ ์ธ์ฆ์ OAuth2
๋ก ํ๊ณ ์์ธ์ค ํ ํฐ์ JWT
๋ฅผ ์ด์ฉํด์ ๋ฐ๊ธํ๊ณ ์๋ค. ์์ธ์ค ํ ํฐ์ ๊ฒฝ์ฐ ๋ง๋ฃ๊ธฐํ์ 1์ผ๋ก ํ๊ณ ํด๋ผ์ด์ธํธ์ ์ฟ ํค์ ๋ด์ ์ ๋ฌํ๋ ๋ฐฉ์์ด๋ค.
์... ์ฟ ํค์ ๋ด๊ธด ์์ธ์ค ํ ํฐ์ด ํ์ทจ๋นํ๋ค๋ฉด ? ์ฐ๋ฆฌ๋ ํด๋น ํ ํฐ์ ๋ง๋ฃ๊ธฐ๊ฐ์ด ๋๋ฌํ๊ธฐ ์ ์ ์์๋ก ๋ง๋ฃ์ํฌ ์ ์๋ค. ๋ณด์์ ๋๋ฌด ํฐ ์ทจ์ฝ์ ์ด๋ค. ์กฐ๊ธ์ด๋ผ๋ ํด๊ฒฐ ๋ฐฉ์์ ์ฐพ์๋ณด์
์ฒซ๋ฒ์งธ
์ด ๋ฌธ์ ์ ๋ํ ๊ฐ์ฅ ๋จ์ํ ์ ๊ทผ์ JWT ํ ํฐ์ ๋ง๋ฃ๊ธฐ๊ฐ์ ์งง๊ฒ ์ฃผ๋ ๊ฒ์ด๋ค. ๋ ๊ทน๋จ์ ์ผ๋ก ๋งค ์์ฒญ๋ง๋ค ํ ํฐ์ ๋ง๋ฃ์ํค๋ ๋ฐฉ๋ฒ๋ ์์ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ฌ์ฉ์๋ ์งง์์ง ์ฃผ๊ธฐ์ ๋ง์ถฐ ๋ ์์ฃผ ์ธ์ฆ์ ์ํํด์ผ ํ๋ค. ๋งค์ฐ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด๋ค.
๋๋ฒ์งธ
์์ธ์ค ํ ํฐ์ ์ฌ๋ฐ๊ธ ๋ฐ์ ์ ์๋ Refresh Token
์ ์ถ๊ฐ๋ก ๋ฐ๊ธํด๋ณด์.
์ต์ด ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์ฑ๊ณตํ์ ๋ Access Token
๊ณผ Refresh Token
๋ ๊ฐ๋ฅผ ๋ฐ๊ธํ๋ ๊ฒ์ด๋ค.
Refresh Token
์ ๋ง๋ฃ๊ธฐํ์ ๊ธธ๊ฒ ์ค์ ํด์ฃผ๋ฉด Access Token
์ด ๋ง๋ฃ๋๋๋ผ๋ ์ฌ์ฉ์๋ Refresh Token
๊ณผ ์๋ฒ์ ๋ก์ง์ ์ํด ์๋ก์ด Access Token
์ ๋ฐ๊ธ๋ฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทผ๋ฐ Refresh Token
์ด ํ์ทจ๋นํ๋ค๋ฉด ... ?
์ธ๋ฒ์งธ
Refresh Token
์ HTTP Only
์ฟ ํค๋ก ์ค์ ํ๋ค.
HTTP only
๋ก ์ค์ ํ๋ฉด ํด๋ผ์ด์ธํธ ์ธก์์ javascript๋ฅผ ํตํด ์ง์ ์ ๊ทผํ ์ ์๋ค. ์
์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ํด๋น ์ฟ ํค๋ฅผ ์ด์ด๋ณผ ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
๊ฝค ์ค๋ซ๋์ jwt ๊ด๋ จ ์๋ฃ๋ฅผ ์ฐพ์๋ดค๋๋ฐ ๋๋ฌด ๋ง์ ๋ฐฉ์์ด ์๋ ๊ฒ ๊ฐ๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ชจ๋ ๋๋ฆ์ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ๋ค. ์ฌ์ค ์์ง๋ 100% ์ดํด๊ฐ ๋์ง ์๋๋ค. ์ฝ๋๋ก ์ฎ๊ธฐ์ง๋ ๋ชปํ๋ค.. ๊ทธ๋๋ ํฐ ๊ฐ๋ ์ ์ดํดํ์ผ๋ ์ฝ๋๋ก ์ฎ๊ธฐ๋ฉด์ ๋ํ ์ผํ ๋ถ๋ถ์ ๋ ์์๋ด์ผ๊ฒ ๋ค.