inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

회원가입까지 잘 되는데, 로그인이 안됩니다.

498

낙서

작성한 질문수 3

0

안녕하세요 제로초님.

매번 질문만 남겨드려 죄송합니다.

매 작업마다 console을 찍어서 에러를 잡아내려고 하곤 있는데 회원가입에서도 문제가 없음에도 로그인이 이루어지지 않습니다.

// routes/user.js

const express = require("express");
const bcrypt = require("bcrypt");
const { User, Post } = require("../models"); // db 내에서 User 테이블을 가져온 것.
const passport = require("passport");

const router = express.Router();

router.post("/", async (req, res, next) => {
  // POST /user || next를 넣으면 발생한 에러를 한방에 브라우저로 모아준다.
  try {
    const exUser = await User.findOne({
      where: {
        email: req.body.email,
      },
    });

    if (exUser) {
      return res.status(403).send("이미 사용중인 아이디입니다.");
      // 여기서 보내는 res에 대한 send 메시지는 sagas/user.js의 signup 부분 err.response.data 가 된다!
    }

    const hashedPassword = await bcrypt.hash(req.body.password, 10);

    await User.create({
      //! User 테이블 내에 post, 즉 생성을 요청한다. 또한 async await을 사용함으로써 비동기처리를 해주고 순서대로 처리될 수 있도록 해준다.
      email: req.body.email,
      nickname: req.body.nickname,
      password: hashedPassword,
    });

    res.status(200).send("ok");
  } catch (error) {
    console.error(error);
    next(error); // status 500 -> 서버쪽 에러라는 뜻
  }
});

// POST /user/login
router.post("/login", (req, res, next) => {
  passport.authenticate("local", (err, user, info) => {
    if (err) {
      console.error(err);
      return next(err);
    }
    if (info) {
      return res.status(401).send(info.reason);
    }
    return req.login(user, async (loginErr) => {
      if (loginErr) {
        console.error(loginErr);
        return next(loginErr);
      }
      const fullUserWithoutPassword = await User.findOne({
        where: { id: user.id },
        attributes: {
          exclude: ["password"],
        },
        include: [{
          model: Post,
        }, {
          model: User,
          as: "Followings",
        }, {
          model: User,
          as: "Followers",
        }
        ],
      });
      return res.status(200).json(fullUserWithoutPassword);
    });
  })(req, res, next);
});

router.post("/logout", (req, res) => {
  req.logout();
  req.session.destroy();
  req.send("ok");
});

module.exports = router;

스크린샷 2022-09-13 오후 8.31.45.png

스크린샷 2022-09-13 오후 8.31.58.png

스크린샷 2022-09-13 오후 8.32.18.png스크린샷 2022-09-13 오후 8.33.17.png

스크린샷 2022-09-13 오후 8.36.52.png

db에도 문제가 없는 듯 한데.. 도대체 무엇을 놓치고 있는 것일까요..?

Next.js redux nodejs express react

답변 2

0

낙서

빠르고 명쾌한 답변 감사합니다!

한방에 해결됐네요..

혹시 해당 에러 코드에서 db가 제대로 만들어지지 않았을 거라는 결론은 어떻게 도출해낼 수 있을까요?

0

제로초(조현영)

UserId 컬럼이 없다고 에러 메시지에 되어 있어서 알았습니다.

0

제로초(조현영)

db가 제대로 안 만들어진 것입니다. 테이블을 지웠다가 다시 서버를 켜서 만들어보세요.

넥스트 버젼 질문

0

90

2

로그인시 401 Unauthorized 오류가 뜹니다

0

104

1

무한 스크롤 중 스크롤 튐 현상

0

198

1

특정 페이지 접근을 막고 싶을 때

0

117

2

createGlobalStyle의 위치와 영향범위

0

103

2

인라인 스타일 리렌더링 관련

0

98

2

vsc 에서 npm init 설치시 오류

0

159

2

nextjs 15버전 사용 가능할까요?

0

166

1

화면 새로고침 문의

0

129

1

RTK에서 draft, state 차이가 있나요?

0

164

2

Next 14 사용해도 될까요?

0

455

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

359

1

url 오류 질문있습니다

0

218

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

391

1

sudo certbot --nginx 에러

0

1295

2

Minified React error 콘솔에러 (hydrate)

0

481

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

257

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

341

1

npm run build 에러

0

526

1

front 서버 npm run build 중에 발생한 에러들

0

399

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

351

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

291

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

251

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

207

1