๐ OTP ์ธ์ฆ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ์ฒ๋ฆฌ ํ๋ฆ ์ ๋ฆฌ
๐ ๊ฐ์
ํ์ฌ๋ณ ์ธ์ฆ ๋ฐฉ์์ ๋ฐ๋ผ OTP(One-Time Password) ์ธ์ฆ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ๊ฐ์ ํ๋ ์์
์ ์งํํ๋ค. ๋ณธ ๊ธฐ๋ฅ์ ์ฌ๋ด ํ์ด๋ธ๋ฆฌ๋ ์ฑ ๋ก๊ทธ์ธ ์ ์ฌ์ฉ์ ์ธ์ฆ์ ๋ณด์ํ๊ธฐ ์ํ ๋ณด์ ์๋จ์ผ๋ก ๋์
๋์์ผ๋ฉฐ, ๊ฐ ํ์ฌ์ ์ ์ฑ
์ ๋ฐ๋ผ SMS, FCM(Google Push) ๋ฐฉ์์ผ๋ก ์ ์ก์ด ๊ฐ๋ฅํด์ผ ํ๋ค. OTP ๋ฐ๊ธ๋ถํฐ ์ธ์ฆ ๊ฒ์ฆ, ๋๋ฐ์ด์ค ๋ฑ๋ก๊น์ง์ ์ ๊ณผ์ ์ ์ค์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ๊ตฌ์ฑํ๋ค.
โ๏ธ ์ ์ฒด ๊ตฌ์ฑ ํ๋ฆ
โ
1. OTP ์์ฒญ ํ๋ฆ
- ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ์์ฒญ (์ด๋ฉ์ผ + ์ ํ๋ฒํธ ์
๋ ฅ)
- ์ฌ์ฉ์ ์ ๋ณด ํ์ธ โ ํด๋น ํ์ฌ์ OTP ์ฌ์ฉ ์ฌ๋ถ ๋ฐ ๋ฐฉ์ ํ์ธ
- OTP ์์ฑ โ ์ค์ ๋ ๋ฐฉ์์ผ๋ก OTP ์ ์ก (SMS / FCM)
- ์ ์ก ์ฑ๊ณต ์ DB์ OTP ์ ์ฅ
โ
2. OTP ์ธ์ฆ ์ฒ๋ฆฌ ํ๋ฆ
- ์ฌ์ฉ์ ์
๋ ฅ OTP ์์
- DB์ ์ ์ฅ๋ OTP์ ๋น๊ต
- ์ผ์น ์ OTP ์ญ์ , ์ธ์ฆ ์ฑ๊ณต ์ฒ๋ฆฌ
- JWT ํ ํฐ ๋ฐ๊ธ ๋ฐ ๋๋ฐ์ด์ค ๋ฑ๋ก
โ
3. OTP ์์ฒญ API ์ฒ๋ฆฌ (requestOtp()
)
- ์ฌ์ฉ์์ ์ ํ๋ฒํธ๋ก OTP ์์ฑ ๋ฐ ์ ์ก ์์ฒญ
- ํ์ฌ๋ณ ์ค์ ์ ๋ฐ๋ผ ๋ฐฉ์ ๋ถ๊ธฐ ์ฒ๋ฆฌ (SMS / GOOGLE_PUSH ๋ฑ)
int otp = OtpProvider.generateOTP(mobile_number, otpDuration, now.toString());
mdotp.setMobileNo(mobile_number);
mdotp.setOtp(String.valueOf(otp));