[1] ์คํ๋ง ์ํ๋ฆฌํฐ 1. ๊ธฐ์ด ์์ Spring Security๋ฅผ Dependencies์ ์ถ๊ฐํ๊ณ ์๋์ ๊ฐ์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ถ๊ฐํด๋ณด์. ์๋ฒ๋ฅผ ๋๋ฆฌ๊ณ ์ฝ์์ ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ํ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ดํ http://localhost:8080์
OAuth2 ๋ฐ JWT ํ ํฐ์ ์ด์ฉํ ๋ก๊ทธ์ธ ๊ตฌํ.
์คํ๋ง ์ํ๋ฆฌํฐ์ ์ฌ์ฉ์ ์ํธ๋ฅผ ๊ฒ์ฆํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. PasswordEncoder๋ ์ธ์ฆ ํ๋ก์ธ์ค์์ ์ํธ๊ฐ ์ ํจํ์ง๋ฅผ ํ์ธํ๋ค. ๋ชจ๋ ์์คํ ์ ์ธ์ฝ๋ฉ๋ ์ํธ๋ฅผ ์ ์ฅํ๋ฉฐ ์๋ฌด๋ ์ฝ์ ์ ์๊ฒ ํด์๋ฅผ ์ ์ฅํ๋ ๊ฒ ์ข๋ค. PasswordEncoder๋ ์ํธ๋ฅผ ์ธ์ฝ๋ฉํ
1. OAuth2 ํ๋ ์์ํฌ OAuth2 ํ๋ ์์ํฌ์ ์ฃผ ๋ชฉ์ ์ ํ์ฌ ์น์ฌ์ดํธ๋ ์น์ด ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๊ฒ ํ์ฉํ๋ ๊ฒ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํด์จ HTTP Basic ์ธ์ฆ ๋ฐฉ์์ ๋ค์์ ๋ ํน์ง์ ๊ฐ์ง๋ค. ๋ชจ๋ ์์ฒญ์ ์๊ฒฉ ์ฆ๋ช ์ฌ์ฉ์์ ์๊ฒฉ ์ฆ๋ช ์ ๋ณ๋์ ์์ค
ํ ํฐ๊ณผ JWT์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ
์ก์ธ์ค ํ ํฐ & ๋ฆฌํ๋ ์ ํ ํฐ๊ณผ ๊ด๋ฆฌ
์ด์ ๊ธ์ 2023๋ 10์ 9์ผ์ ์ผ๋๋ฐ, ๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ค ์ด์ ์ผ ๋ค์ ๋ด์ฉ์ ์ฐ๊ฒ ๋๋ค.
์คํ๋ง ์ํ๋ฆฌํฐ์ ์ค์ ์ ์ํ Configuration Class๋ฅผ ์์ฑํ๊ณ , ํ์๊ฐ์ ์ ์ํ ๊ฐ๋จํ ํ๋ก ํธ ํ์ด์ง๋ ์ถ๊ฐํด๋ณด์.
UserDetails, UserDetailsService์ JWT์ ๊ด๋ จํ ์๋น์ค๋ฅผ ๋ด๋นํ JwtService ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๊ณ ๊ตฌํํ๋ค.
๋ก๊ทธ์ธ์ ์ฒ๋ฆฌํ ํํฐ์ ๋ก๊ทธ์ธ ์ฑ๊ณต ํธ๋ค๋ฌ๋ฅผ ์ถ๊ฐํด๋ณด์.
๋ก๊ทธ์ธ์ ํ๋ฉด์ ๋ฐ๊ธ๋ฐ์ ์ก์ธ์ค ํ ํฐ์ผ๋ก ์ธ์ฆ์ ํด๋ณด์.
์ฟ ํค์ ๋ค์ด์๋ ๋ฆฌํ๋ ์ ํ ํฐ์ผ๋ก ์๋ก ์ก์ธ์ค ํ ํฐ๊ณผ ๋ฆฌํ๋ ์ ํ ํฐ์ ๋ฐ์์๋ณด์. ์ง์ ๊ธ์์ ํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๋์ผํ๊ฒ ๋ฆฌํ๋ ์ ํ ํฐ ์ธ์ฆ์ ์ํ Token, Provider, Filter๋ฅผ ๋ง๋ค๊ณ ํํฐ ์ฒด์ธ์ ๋ฑ๋กํ๋ค.
์ ๋ฒ ๊ธ์์ ๋ฒํผ์ ๋๋ฌ์ ํ ํฐ์ ๊ฐฑ์ ํ๋ ๋ฐ์๋ ์ฑ๊ณตํ๋ค. ์ค๋์ `axios`์ ์ธํฐ์ ํฐ๋ฅผ ์ด์ฉํด ์ธ์ฆ์ด ํ์ํ API ํธ์ถ์ ์คํจํ์ ๋ ์๋์ผ๋ก ์ก์ธ์ค ํ ํฐ์ ๊ฐฑ์ ํด๋ณด๋๋ก ํ์.