강의

멘토링

커뮤니티

Inflearn Community Q&A

biio's profile image
biio

asked

[Renewal] Creating NodeBird SNS with React

Troubleshooting login issues

로그인 실패 시 에러처리

Resolved

Written on

·

816

0

안녕하세요 제로초님! 로그인 실패시 에러가 나는데 아무리 찾아봐도 어디가 문제인지 못찾겠어요ㅜㅜ

로그인 성공시에는 아무 문제가 없는데,

로그인 실패(이메일이나 비밀번호를 잘못 입력할때) 계속 반복적으로 로그인요청을 보냅니다. 그리고 로그인 실패응답을 받아서 콘솔창에 에러메시지가 쌓여요.

사가에서 중간중간 console.log를 사용했더니 위와 같이 응답되었습니다.

saga쪽 코드도 첨부할게요.

import axios from 'axios';
import { all, delay, fork, put, takeLatest, call } from 'redux-saga/effects';
import {
  FOLLOW_FAILURE,
  FOLLOW_REQUEST,
  FOLLOW_SUCCESS,
// 다른 액션 생략....
} from '../reducers/user';

function logInAPI(data) {
  return axios.post('/user/login', data);
}

function* logIn(action) {
  console.log('request');
  try {
    console.log('loading');
    const result = yield call(logInAPI, action.data);
    yield put({
      type: LOG_IN_SUCCESS,
      data: result.data,
    });
    console.log('success');
  } catch (error) {
    console.log('catch');
    console.error(error);
    yield put({
      type: LOG_IN_FAILURE,
      error: error.response.data,
    });
    console.log('fail');
  }
}

// 로그인 외 사가 생략

function* watchLogIn() {
  yield takeLatest(LOG_IN_REQUEST, logIn);
}
function* watchLogOut() {
  yield takeLatest(LOG_OUT_REQUEST, logOut);
}
function* watchSignUp() {
  yield takeLatest(SIGN_UP_REQUEST, signUp);
}
function* watchFollow() {
  yield takeLatest(FOLLOW_REQUEST, follow);
}
function* watchUnFollow() {
  yield takeLatest(UNFOLLOW_REQUEST, unfollow);
}
export default function* userSaga() {
  yield all([
    fork(watchLogIn),
    fork(watchLogOut),
    fork(watchSignUp),
    fork(watchFollow),
    fork(watchUnFollow),
  ]);
}

어디가 잘못된 걸까요?ㅜㅜ

expressreduxnodejsreactNext.js

Answer 4

0

biio님의 프로필 이미지
biio
Questioner

앗 그렇네요!!! 아 그래서 이렇게...... 너무 기본적인 실수라 부끄럽네요....하핳... 오류날때 어떻게 찾아야하는지 좀더 배운것 같아요. 감사합니다.

0

zerocho님의 프로필 이미지
zerocho
Instructor

혹시 reducer에서 const LOG_IN_FAILURE = 'LOG_IN_REQUEST'로 되어 있느는건 아닌가요?

0

biio님의 프로필 이미지
biio
Questioner

아니요 그건 처음 한번만 떠요ㅠㅠ 사가쪽 console만 반복돼요.

0

zerocho님의 프로필 이미지
zerocho
Instructor

LoginForm.js의 dispatch loginAction 찍으신 것 위에 console.log(email, password)도 계속 뜨나요?

biio's profile image
biio

asked

Ask a question