[ Dev Log ] elinapark0818 0330
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
### 오늘 한일
- [x] 마이페이지 -> 비밀번호 확인되면 회원정보수정/회원탈퇴 접근 가능하도록 수정 완료
- [x] 회원가입 진행 시, 닉네임 유효성 검사 -> 한글,영문,숫자 2-10자리 이상 입력하도록 수정 완료
- [x] 회원가입 진행 시, 비밀번호 -> 영문,숫자,특수문자 포함 8자리 이상 입력하도록 수정 완료
- [x] 서버상태가 불안전하면 안내 메시지가 출력되는 state 제작
- [x] 네비게이션바 스타일링 약간 수정
### 오늘까지 아직 해야할 일
- [x] axios 요청 시, Authorization 추가하기 (로그인, 회원가입, )
- [ ] 서버상태 불안전할때 메시지 출력 적용하기
- [x] 로그인, 로그아웃, 회원가입 핸들링 서버 연동 완성하기
- [ ] 대시보드에서 유저 보트정보 불러오기 서버 연동 작성하기
### 내일 해야할 일
- [ ] 대시보드 기능 구현
### 첨부자료 (code or screenshot)
비밀번호 확인 기능
```
const handlePasswordCheck = async () => {
try {
const res = await axios.post(
`${serverURL}/user/check`,
{
user_id: userInfo.email,
password: myPagePwd,
},
{ withCredentials: true }
);
if (res.status === 200 && res.data.message === "It doesn't match") {
console.log("비밀번호가 일치하지 않습니다.");
}
if (res.status === 200 && res.data.message === "Success verified") {
console.log("패스워드체크완료!", res.data.message);
setCheckPwd(true);
}
} catch (err) {
console.log(err);
}
};
```
닉네임 유효성 검사
```
const [nameValid, setNameValid] = useState(false);
const [isBlur, setIsBlur] = useState(false);
const nameBlur = (e: React.FocusEvent) => {
setIsBlur(true);
if (newUser.name.match(/^[\w\Wㄱ-ㅎㅏ-ㅣ가-힣]{2,20}$/)) {
setNameValid(true);
} else {
setNameValid(false);
}
};
```
비밀번호 유효성 검사
```
const passwordBlur = (e: React.FocusEvent) => {
setIsPasswordBlur(true);
if (
newUser.password.match(
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/i
)
) {
setPasswordValid(true);
} else if (
user.password.match(
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/i
)
) {
setPasswordValid(true);
} else {
setPasswordValid(false);
}
};
```
서버 불안정 관련 상태
`const [isServerOk, setIsServerOk] = useState(true);`

Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.