
๋ณธ ๊ฐ์๋ Spring Boot, Spring Security๋ฅผ ์ด์ฉํด์ JWT ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์๋๋ก ๊ตฌ์ฑํ ํํ ๋ฆฌ์ผ์
๋๋ค.
Github โ๏ธ ( ์๋ ์ฝ๋๋ฅผ ๊ผญ ์ฐธ๊ณ ํด์ฃผ์ธ์. )
Spring Boot 3.4.0 (SNAPSHOT) ๋ฒ์ ์ ๋ง์ถฐ ์ํ ์ฝ๋๋ฅผ ์
๋ฐ์ดํธํ์ต๋๋ค.
์๋ ๋งํฌ์์ Java์ Kotlin ๋ฒ์ ์ ์ต์ ์ํ ์ฝ๋๋ฅผ ํ์ธํ์ค ์ ์์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
Java : https://github.com/SilverNine/spring-boot-jwt-tutorial
Kotlin : https://github.com/SilverNine/spring-boot-jwt-tutorial-kotlin
๊ฐ์ ์๊ฐ ๐
"JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties." - jwt.io
JWT๋ RFC7519 ์ธํฐ๋ท ํ์ค์ผ๋ก ์ง์ ์ด ๋์ด์๊ณ , ํ ํฐ ๊ธฐ๋ฐ์ ์ธ์ฆ ์์คํ
์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธ์ฆ ๋ฐฉ์์
๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํํ ๋ฆฌ์ผ์์ ํ์๊ฐ์
, ๋ก๊ทธ์ธ, ๊ถํ ๋ก์ง์ ์ค์ ๋ก ๊ตฌํํด๋ณด๊ณ Spring Security์ ์ธ์ฆ๊ณผ ์ธ๊ฐ ๋ก์ง์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ฒดํํ๊ฒ ๋ ๊ฒ์
๋๋ค.
์์ ์ง๋ฌธ Q&A ๐๐ปโโ๏ธ
์ด ๊ฐ์์์๋ ์ด๋ค ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋์?
- IntelliJ IDEA, Postman, Browser๋ฅผ ์ฌ์ฉํ๋ ํ์๋ ์๋๋๋ค :)
์ธ์ฆ๊ณผ ์ธ๊ฐ๊ฐ ๋ฌด์์ธ๊ฐ์?
- ์ธ์ฆ์ Request๋ฅผ ๋ณด๋ธ User๊ฐ ๋๊ตฌ์ธ์ง? ์ฌ๋ฐ๋ฅธ User์ธ์ง ํ์ธํ๋ ๊ณผ์ ์ ๋ปํฉ๋๋ค.
- ์ธ๊ฐ๋ Request๊ฐ ์ํํ๊ณ ์ ํ๋ ํ๋์ด ํ๊ฐ๋ ํ๋์ธ์ง๋ฅผ ํ์ธํ๋ ๊ณผ์ ์ ๋ปํฉ๋๋ค.
์ด ๊ฐ์๋ฅผ ์์ํ๊ฒ ๋ ๊ณ๊ธฐ๋ฅผ ์๊ฐํด ์ฃผ์ธ์.
- ๊ธฐ์กด ์ธ์ฆ ๋ฐฉ์์ ์์คํ
ํ์ฅ ์ด์์ ์ง์ณ ์ฐพ์ ์์ฃผ ์ข์ ๋์์ ์๊ฐํ๊ณ ์ถ์์ต๋๋ค.
- ๊ฐ๋ฐ์๋ก์ ์ฌ์ด๋ ํน์ ํ ์ด ํ๋ก์ ํธ๋ฅผ ์์ฃผ ์งํํ๊ฒ ๋๋๋ฐ ์์ฐ์ค๋ฝ๊ฒ ๊ฐํธํ JWT ๋ฐฉ์์ผ๋ก ์ธ์ฆ, ์ธ๊ฐ๋ฅผ ๊ตฌํํ๋ ์ ๋ชจ์ต์ ๋ฐ๊ฒฌํ ์ ์์์ต๋๋ค. ์ด๋ฅผ ์๊ฐ ๋๋ฆฌ๊ณ ์ ๋ง๋ค๊ฒ ๋์์ต๋๋ค.