강의

멘토링

커뮤니티

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

이한솔님의 프로필 이미지
이한솔

작성한 질문수

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

S3 연결하기

401에러 쿠키에 connect.sid가 2개에요..

작성

·

270

0

안녕하세요 제로초님 유트브와 인프런에서 강의 잘 보고있습니다.

다름 아니라 제로초님 강의를 참고하여 제 포트폴리오로 새롭게 만드는 중인데요! 지금 배포 후 401에러가 나와서 보니까 쿠키에 connect.sid가 2개가 들어가 있는데 어디가 문제인지 모르겠습니다.

참고로 도메인에 api를 넣었다가 틀린걸 알고 다시 제대로 수정했는데 api가 붙은 도메인이 계속 따라오네요..

아래에는 백엔드 app.js 코드입니다.

 

const express = require("express");
const cors = require("cors");
const session = require("express-session");
const passport = require("passport");
const cookieParser = require("cookie-parser");
const dotenv = require("dotenv");
const morgan = require("morgan");
const hpp = require("hpp");
const helmet = require("helmet");

const path = require("path");
const userRouter = require("./routes/user");
const postRouter = require("./routes/post");
const postsRouter = require("./routes/posts");
const stackRouter = require("./routes/stack");
const imageRouter = require("./routes/image");

const db = require("./models");
const passportConfig = require("./passport");

// ################################################################# //

dotenv.config();
const app = express();

db.sequelize
  .sync()
  .then(() => {
    console.log("db 연결 성공");
  })
  .catch(console.error);

passportConfig();

if (process.env.NODE_ENV === "production") {
  app.use(morgan("combined"));
  app.use(hpp());
  app.use(helmet({ contentSecurityPolicy: false }));
  app.use(
    cors({
      origin: "http://semifoli.site",
      credentials: true,
    })
  );
} else {
  app.use(morgan("dev"));
  app.use(
    cors({
      origin: true,
      credentials: true,
    })
  );
}

app.use("/", express.static(path.join(__dirname, "uploads")));
app.use(express.json()); // 프론트에서 data를 json으로 보냈을때 req.body 안에 넣어줌
app.use(express.urlencoded({ extended: true })); // 프론트에서 form(form 은 url)으로 data를 보냇을때 req.body 안에 넣어줌
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(
  session({
    saveUninitialized: false,
    resave: false,
    secret: process.env.COOKIE_SECRET,
    cookie: {
      httpOnly: true,
      secure: false,
      domain: ".semifoli.site",
      // domain: process.env.NODE_ENV === "production" && ".semifoli.site",
    },
  })
);
app.use(passport.initialize());
app.use(passport.session());

app.get("/", (req, res) => {
  res.send("hello express");
});

app.use("/posts", postsRouter);
app.use("/post", postRouter);
app.use("/user", userRouter);
app.use("/stack", stackRouter);
app.use("/image", imageRouter);
// app.use("/stacks", stacskRouter);

app.listen(80, () => {
  console.log("서버 실행 중!");
});

 

답변 1

0

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

api가 붙은 쿠키를 지우시면 됩니다.

이한솔님의 프로필 이미지
이한솔

작성한 질문수

질문하기