강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

GI P님의 프로필 이미지
GI P

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

CORS 문제 해결하기

회원가입 중복관련 질문있습니다.

작성

·

167

0

회원가입을 성공시키고 나서 다시들어가면 라우팅이 메인화면에 가져서 회원가입을 하면 signUpDone이 true가 되었다가 false로 변경시켯는데 여기서 같은 아이디로 가입을 하게되면 제로초님이 403에러 뜨게 하신거 처럼 백엔드 작업을 해놓고 같은 아이디로 가입을 햇는데 403에러까지는 정상적으로 나오는데 403에러면 rejected가 실행이 되야 되는거 같은데 fulfilled가 실행이 됩니다. 콘솔 화면에는 정상적으로 에러가 낫다라는게 나오는데도요... 이유를 알수 잇을까 싶습니다.
콘솔에 나오는 것은 아래 이미지구

제 리덕스툴킷 코드는 아래와 같습니다.

import { createAsyncThunk,createSlice } from "@reduxjs/toolkit";
import * as I from "types"
import { authAxios, baseAxios } from "utils/instance";




interface UserInitialState {
 
  // 회원가입
  signUpLoding: boolean;
  signUpDone: boolean;
  signUpError: null | undefined | string;
  resetSignUpDone: boolean;
}
const initialState: UserInitialState = {
  
  // 회원가입
  signUpLoding: false,
  signUpDone: false,
  signUpError: null,
  resetSignUpDone: false,
};

// 회원가입
export const signUp = createAsyncThunk("user/signup", async (data:I.SignUp) => {
  const response = await baseAxios.post("/user", data);
  return response;
});

const UserReducer = createSlice({
  name: "user",
  initialState,
  reducers: {
    resetSignUpDone:(state)=>{
      state.signUpDone = false
    }
  },
  extraReducers: (builder) =>
    builder

      // 회원가입
      .addCase(signUp.pending, (draft) => {
        draft.signUpLoding = true;
        draft.signUpError = null;
        draft.signUpDone = false;
      })
      .addCase(signUp.fulfilled, (draft) => {
        draft.signUpLoding = false;
        draft.signUpDone = true;
      })
      .addCase(signUp.rejected, (draft, action) => {
        draft.signUpLoding = false;
        draft.signUpDone = false;
        draft.signUpError = action.error.message;
      }),
});
export const { resetSignUpDone } = UserReducer.actions;
export default UserReducer

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

baseAxios에 혹시 response interceptor같은 거 장착되어있나요?

GI P님의 프로필 이미지
GI P

작성한 질문수

질문하기