inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

passport strategy의 자체적으로 로직 만들어서 낸 에러 내용 프론트에서 받는 법 질문!

315

Jiyeol Lee

작성한 질문수 23

0

//back/routes/user.js 파일 passport.authenticate 메소드 내부 

if (info) {
			return res.status(401).send(info.reason);
		}

//back/passport/local.js 파일 내부

passport.use(new LocalStrategy({
    //req.body 내부에서 넘어오는 아이디, 비밀번호에 해당하는 프로퍼티명을 할당해주어야 한다.
    usernameField: 'userId',
    passwordField: 'password',
  }, async (userId, password, done) => {
    try {
      const user = await db.User.findOne({ where: { userId } });
      if (!user) {
        return done(null, false, { reason: '존재하지 않는 사용자입니다!' });
      }
      const result = await bcrypt.compare(password, user.password);
      if (result) {
        return done(null, user);
      }
      return done(null, false, { reason: '비밀번호가 틀립니다.' });
    } catch (e) {
      console.error(e);
      return done(e);
    }
  }));

(현재 강의 섹션 5 거의 다 들어가는 상황입니다)

없는 아이디로 로그인하거나 비밀번호가 틀리면 위와 같이 오류가 나는데요. 'Request failed ~ ' 이러한 에러 메시지는 리덕스 액션활용해서 리덕스 state로 저장할 수가 있었는데, passport strategy에서 제로초님이 짜셨던 로그인 로직에서 done 메소드의 3번째 인자(reason 프로퍼티 가지는 객체)에 들어가는 데이터는 프론트에서 어떻게 받을 수 있는지 모르겠습니다. 

res.status(401).send로 보내도록 되어있는데 프론트단에서 어떻게 확인할 수 있는 건지 백엔드쪽 제대로 공부하는 것은 처음이라 알려주시면 감사하겠습니다. 

실무에서 어떻게 하는지는 모르겠지만 프론트단에서 사용자에게 로그인이 잘못되었을 때 어떠한 메시지로든 알려주어야할텐데 그래서 여쭤봤습니다. 

react javascript

답변 1

0

제로초(조현영)

res.status(401).json({ error }) 이런 식으로 객체를 보낼 수 있게 코드를 수정하시고, 프론트에서 console.dir(error) 해보시면 객체가 받아짐을 확인하실 수 있습니다.

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

484

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

448

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

435

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

976

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1