Closed sjgaru-dev closed 1 day ago
이 PR은 비밀번호 해싱 및 전화 인증 기능을 포함한 사용자 등록을 구현합니다. 주요 변경 사항으로는 joaat 알고리즘을 사용한 비밀번호 해싱 기능 추가, AWS Lambda를 통한 SMS 인증 구현, 이러한 새로운 기능을 지원하기 위한 회원가입 및 계정 복구 흐름 업데이트가 포함됩니다.
sequenceDiagram
actor User
participant SignupForm
participant AuthAPI
participant Utils
User->>SignupForm: 등록 양식 작성
SignupForm->>Utils: joaatHash(pwd)
SignupForm->>AuthAPI: signup({email, name, hashedPwd, phoneNumber})
AuthAPI->>AuthAPI: 해싱된 비밀번호로 사용자 저장
AuthAPI-->>SignupForm: 성공 응답
SignupForm-->>User: 성공 대화 상자 표시
sequenceDiagram
actor User
participant FindAccountForm
participant SMSAPI
User->>FindAccountForm: 전화 인증 요청
FindAccountForm->>SMSAPI: sendSMS(phone)
SMSAPI-->>FindAccountForm: SMS 전송됨
User->>FindAccountForm: 인증 코드 입력
FindAccountForm->>SMSAPI: verifySMS(phone, code)
SMSAPI-->>FindAccountForm: 인증 성공
FindAccountForm-->>User: 인증 성공 표시
classDiagram
class SignupFormData {
-string email
-string pwd
-string pwdConfirm
-string name
-string phoneNumber
-string[] terms
}
class AuthAPI {
+login(email: string, pwd: string, isTemporaryPwd: boolean)
+signup(signupRequest: SignupRequest)
}
class Utils {
+joaatHash(str: string): string
+formatPhoneNumber(phoneNumber: string): string
}
class SMSAPI {
+sendSMS(phone: string)
+verifySMS(phone: string, token: string)
}
SignupFormData --> AuthAPI
AuthAPI --> Utils
FindAccountForm --> SMSAPI
변경 사항 | 세부 사항 | 파일 |
---|---|---|
사용자 등록 및 로그인에 대한 비밀번호 해싱 구현 |
|
src/utils/joaatHash.ts src/api/authAPI.ts src/components/custom/forms/SigninForm.tsx |
계정 복구를 위한 SMS 인증 기능 추가 |
|
src/api/smsAPI.ts src/utils/phoneNumber.ts src/components/custom/forms/FindAccountForm.tsx |
향상된 유효성 검사 및 사용자 경험을 갖춘 회원가입 양식 개선 |
|
src/components/custom/forms/SignupForm.tsx src/utils/signupSchema.ts src/api/profileAPI.ts |
Visit the preview URL for this PR (updated for commit 3b6788a):
https://aipark-four-t--242-9kco86gw.web.app
(expires Thu, 05 Dec 2024 20:44:05 GMT)
🔥 via Firebase Hosting GitHub Action 🌎
Sign: 0a4b3ef6ecc2c695a6a0d6ade46651e032870a9f
회원가입 비밀번호 1234 입력 -> db에 해쉬값 qwer 로 변환해서 string 으로 저장. 로그인 1234 입력 -> 해쉬값 qwer 으로 변환 = db값과 매칭 임시비밀번호 체크 = 해쉬 전환 X , qwer 을 string 으로 보내서 db값과 매칭
그래서 해시적용이 안 된 기존 user1,2,3 은 임시비밀번호 사용 체크해야 합니다.
aws 람다 함수로 coolsms 전화번호 인증 api 만들었으며 포스트맨으로 람다함수 url로 { "phone" : "010-1234-1234" } 보내면 인증번호 문자 오는데 페이지에 연결하는 것은 아직 cors 에러 못 잡았습니다. 람다 url을 api 게이트웨이 설정으로 sms.popomance.kr 로 변환 작업까지 예정이고 300원 제공된 테스트 요금으로 하고 있는데, 최소 충전금액 1만원이라 충전할까... 생각중입니다.
https://console.coolsms.co.kr/dashboard team4.popomance@gmail.com / 4whghkdlxld!
Sourcery에 의한 요약
계정 복구를 위한 SMS를 통한 전화번호 인증을 도입하고 안전한 저장을 위한 비밀번호 해싱을 구현합니다. 필드 처리 개선 및 임시 비밀번호 지원과 같은 추가 기능으로 회원가입 및 로그인 양식을 향상시킵니다.
새로운 기능:
joaatHash
함수를 사용하여 비밀번호 해싱을 추가합니다.개선 사항:
Original summary in English
## Summary by Sourcery Introduce phone number verification via SMS for account recovery and implement password hashing for secure storage. Enhance the signup and login forms with improved field handling and additional features like temporary password support. New Features: - Implement phone number verification via SMS using AWS Lambda and integrate it into the account recovery process. - Add password hashing using the joaatHash function for secure password storage during signup and login. Enhancements: - Refactor the signup form to use consistent naming conventions for password fields and improve phone number handling. - Enhance the login form to support temporary passwords and remember email functionality.