๐ก SNS ๋ก๊ทธ์ธ(์นด์นด์ค)์ ์ํ Rest API ์์ฑโก๏ธ 1ํ ๋ฐ๋ก๊ฐ๊ธฐ: ์ค์ ๋ฐ ํ์๊ฐ์
โก๏ธ 2ํ ๋ฐ๋ก๊ฐ๊ธฐ: JWT ๋ก๊ทธ์ธ ๋ฐ ํ์ ์ ๋ณด ์กฐํโก๏ธ 3ํ ๋ฐ๋ก๊ฐ๊ธฐ: Refresh TokenSNS ๋ก๊ทธ์ธ Flowํด๋น ํ๋ก์ ํธ์์๋ ๋ชจ๋ฐ์ผ ์ดํ๋ฆฌ์ผ์ด์
์ ์ํ Rest API๋ฅผ ๊ตฌํํ๋ค.Client SDK์์ ์นด์นด์ค ๋ก๊ทธ์ธ ์๋ฃ ํ 3rd๋ก๋ถํฐ ์ ํด๋ฐ๋ accesToken์ Server์ ์ ๋ฌํ๋ค.ํด๋น AccessToken์ผ๋ก ๋ค์ํ๋ฒ 3rd์ ์กฐํํ์ฌ, ํ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.์กฐํํ ํ์ ์ ๋ณด๊ฐ ์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ๋ก๊ทธ์ธ ๋ก์ง์ ์คํํ์ฌ ์ฑ๊ณต ์๋ต์ ๋ณด๋ธ๋ค.์กฐํํ ํ์ ์ ๋ณด๊ฐ ์์ ๊ฒฝ์ฐ, ํ์ ์ ๋ณด๋ฅผ ์๋ก ์ ์ฅ(ํ์๊ฐ์
)ํ๊ณ ๋ก๊ทธ์ธ๊น์ง ์ฑ๊ณต์์ผ ์๋ต์ ๋ณด๋ธ๋ค.๊ฐ๋ฐ ํ๊ฒฝSpring Boot 3.x.x / Ko..
๐ป ๊ฐ๋ฐ ์ผ์ง/SpringBoot
๐ก SpringMail์ ์ฌ์ฉํ์ฌ ๋ฉ์ผ ์ ์ก ๊ตฌํ GitHub - jeongum/spring-mail Contribute to jeongum/spring-mail development by creating an account on GitHub. github.com ๊ฐ๋ฐํ๊ฒฝ SpringBoot 3.1.4 kotlin / java 17 build.gradle.kts ์ค์ ์ฌ์ฉํ springframework mail ์ค์ ์ถ๊ฐ implementation("org.springframework.boot:spring-boot-starter-mail") application.yml ์ค์ ๋ฉ์ผ ์ ์ก์ ํ์ํ smtp ์ค์ spring: mail: host: smtp.gmail.com port: 587 username:..
๐ก Refresh Token์ ์ฌ์ฉํ์ฌ ์์ ํ API ํต์ ์ ๋ง๋ ๋ค โก๏ธ 1ํ ๋ฐ๋ก๊ฐ๊ธฐ: ์ค์ ๋ฐ ํ์๊ฐ์
โก๏ธ 2ํ ๋ฐ๋ก๊ฐ๊ธฐ: JWT ๋ก๊ทธ์ธ ๋ฐ ํ์ ์ ๋ณด ์กฐํ AccessToken / RefreshToken `AccessToken` ์ ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. `AccessToken` ์ ํ์ทจ ๋นํ ๊ฒฝ์ฐ, ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๊ฐ ํ์ทจ์(๊ณต๊ฒฉ์)์๊ฒ ๊ทธ๋๋ก ๋
ธ์ถ ๋ ์ ์๋ค. JWT๋ Statelessํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์์๋ ํด๋น ํ ํฐ์ ๊ฐ์ง๊ณ ์๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ณต๊ฒฉ์์ธ์ง๋ ๊ตฌ๋ถํ ์ ์๊ธฐ ๋๋ฌธ์ AccessToken์ ํ์ทจ๋ ๋งค์ฐ ์ํํ๋ค! RefreshToken ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด AccessToken์ ๋ง๋ฃ ์ฃผ๊ธฐ๋ฅผ ์งง๊ฒ ์ค์ ํ๊ณ , ์ด๋ฅผ ๋ณด์ํ ์ ์๋ RefreshToken์ ๋์
ํ๋ค. `..
๐ก ๋ณธ๊ฒฉ์ ์ผ๋ก JWT๋ฅผ ํ์ฉํ์ฌ ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ค. ํด๋น ์ฅ์์๋ refreshToken ์ ๊ณ ๋ คํ์ง ์๋๋ค! (๋ค์ ์ฅ์์ ๊ตฌํ ์์ โ
) โก๏ธ 1ํ ๋ฐ๋ก๊ฐ๊ธฐ: SpringSecurity ์ค์ ๋ฐ ํ์๊ฐ์
โก๏ธ 3ํ ๋ฐ๋ก๊ฐ๊ธฐ: RefreshToken CustomUser ์์ฑ SpringSecurity์์ ์ฌ์ฉํ๋ `User` ํด๋์ค๋ฅผ ์์๋ฐ์, ๋์ฒดํ ์ ์๋ `CustomUser` ํด๋์ค ์์ฑ //CustomUser.kt class CustomUser ( val id: UUID, userName: String, password: String, authorities: Collection ): User(userName, password, authorities) CustomUserDetailsService..