Skip to content

Commit 92faebf

Browse files
authored
Merge pull request #9 from Con-graduation/feat/practice
FEAT : 회원가입 API 연동
2 parents c2e342a + 81f5e1b commit 92faebf

3 files changed

Lines changed: 22 additions & 7 deletions

File tree

src/api/auth.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ export async function postLogin(username, password) {
1010
}
1111

1212
// 회원가입
13-
export const postRegister = async (email, name, username, password) => {
13+
export const postRegister = async (email, name, username, nickname, password) => {
1414
try {
1515
const response = await client.post("/api/auth/register", {
1616
email: email,
1717
name: name,
1818
username: username,
19+
nickname: nickname,
1920
password: password,
20-
confirmPassword: confirmPassword,
2121
});
2222
return response.data;
2323
} catch (error) {

src/pages/join.jsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,18 @@ export default function Join() {
171171
return Object.keys(newErrors).length === 0;
172172
};
173173

174-
const handleSubmit = (e) => {
174+
const handleSubmit = async (e) => {
175175
e.preventDefault();
176176
console.log('현재 입력된 데이터:', formData);
177177
if (validateForm()) {
178-
console.log('회원가입 완료 - 전송할 데이터:', formData);
179-
setModalContent('회원가입이 완료되었습니다.');
180-
setModalOpen(true);
178+
const response = await postRegister(formData.email, formData.name, formData.username, formData.nickname, formData.password);
179+
if (response.status == 200) {
180+
setModalContent('회원가입이 완료되었습니다.');
181+
setModalOpen(true);
182+
} else {
183+
setModalContent('회원가입 중 오류가 발생했습니다. 다시 시도해주세요.');
184+
setModalOpen(true);
185+
}
181186
} else {
182187
console.log('유효성 검증 실패 - 에러:', errors);
183188
}

src/pages/setting.jsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@ import { useNavigate } from 'react-router-dom';
33
export default function Setting() {
44
const navigate = useNavigate();
55

6+
const handleLogout = () => {
7+
localStorage.removeItem('accessToken');
8+
localStorage.removeItem('name');
9+
localStorage.removeItem('nickname');
10+
localStorage.removeItem('level');
11+
localStorage.removeItem('googleAuth');
12+
navigate('/');
13+
};
614
return (
715
<div className="min-h-screen w-screen bg-[#EEF5FF] flex flex-col">
816
<h1 className="text-2xl font-bold pt-10 text-center">설정</h1>
@@ -22,7 +30,9 @@ export default function Setting() {
2230
</svg>
2331
알림 설정
2432
</button>
25-
<button className="w-80 py-2 bg-red-400 text-white rounded-md font-bold flex items-center justify-center gap-2 hover:bg-red-500 transition-colors duration-200">
33+
<button className="w-80 py-2 bg-red-400 text-white rounded-md font-bold flex items-center justify-center gap-2 hover:bg-red-500 transition-colors duration-200"
34+
onClick={handleLogout}
35+
>
2636
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
2737
<path fillRule="evenodd" d="M3 3a1 1 0 00-1 1v12a1 1 0 102 0V4a1 1 0 00-1-1zm10.293 9.293a1 1 0 001.414 1.414l3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L14.586 9H7a1 1 0 100 2h7.586l-1.293 1.293z" clipRule="evenodd" />
2838
</svg>

0 commit comments

Comments
 (0)