inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

도메인 연결 후 401 (Unauthorized) 에러가 발생합니다

해결된 질문

2012

maliethy

작성한 질문수 9

0

도메인 연결하니 로그인 후 새로고침을 해도 쿠키값이 저장되는데

게시글을 작성하면 http://api.ymillonga.xyz/post 401 (Unauthorized) 에러가 납니다

쿠키 문제라고 짐작하고 있는데 

프론트 서버에서 withCredentials= true 설정되었고

백 서버에서 cors에 credentials:true 로 되어있는 것 확인했습니다

제가 뭘 놓치고 있는 걸까요? 

(이렇게 빨리 다시 질문을 하게 될 줄 몰랐습니다 흑흑)

back/app.js

const prod = process.env.NODE_ENV === 'production';
const frontUrl = prod ? "http://ymillonga.xyz" : "http://localhost:3050";
db.sequelize.sync()
    .then(() => {
        console.log('db연결 성공');
    })
    .catch(console.error);
app.use(morgan('dev'));

if (prod) {
    // app.enable('trust proxy');
    app.use(morgan('combined'));
    app.use(hpp());
    app.use(helmet({ contentSecurityPolicy: false }));
    app.use(cors({
        origin: frontUrl,
        credentials: true,
    }))
else {
    app.use(morgan('dev'));
    app.use(cors({
        origin: true,
        credentials: true,
    }));
}

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use('/'express.static(path.join(__dirname'uploads')));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(session({
    saveUninitialized: false,
    resave: false,
    secret: process.env.COOKIE_SECRET,
    // proxy: prod,
    cookie: {
        httpOnly: true,
        secure: false,
        // process.env.NODE_ENV === 'production',//https일 때 true
        domain: process.env.NODE_ENV === 'production' && '.ymillonga.xyz'
    },
}));
app.use(passport.initialize());
app.use(passport.session());

front/config/config.js

export const callbackUrl = process.env.NODE_ENV === 'production' ?
 "http://api.ymillonga.xyz/user/google/callback" : "http://localhost:3051/user/google/callback";
export const backUrl = process.env.NODE_ENV === 'production' ?
 "http://api.ymillonga.xyz" : "http://localhost:3051";
export const frontUrl = process.env.NODE_ENV === 'production' ?
 "http://ymillonga.xyz" : "http://localhost:3050";

front/saga/index.js

import { allfork } from 'redux-saga/effects';

import userSaga from './user';
import postSaga from './post';
import { backUrl } from '../config/config';
import axios from 'axios';

axios.defaults.baseURL = backUrl;
axios.defaults.withCredentials = true;
export default function* rootSaga() {
    yield all([
        fork(userSaga),
        fork(postSaga),
    ]);
}

redux react nodejs express Next.js

답변 2

2

제로초(조현영)

지금 스크린샷을 보니 로그인할 때 쿠키와 게시글 작성할 때 쿠키가 다르네요. 혹시 어떤 때 달라지는 지 한 번 보시겠어요? Application 탭의 쿠키도 같이 보시는 게 좋습니다.

0

maliethy

이유는 모르겠는데 시간이 어느 정도 흐른 후 브라우저 창을 닫고 다시 페이지를 들어가서 시도해보니 쿠키값이 변하지 않으면서 백서버에 요청이 잘 넘어갑니다!

제가 로그아웃 요청이 안넘어가서 application탭에서 cookie.sid값을 강제로 삭제한 후 다른 아이디로 로그인했는데 그것때문이었을까요?

제로초님 덕분에 무사히 배포하기까지 왔네요

감사합니다~

넥스트 버젼 질문

0

75

2

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

0

88

1

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

0

172

1

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

0

103

2

createGlobalStyle의 위치와 영향범위

0

93

2

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

0

90

2

vsc 에서 npm init 설치시 오류

0

146

2

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

0

157

1

화면 새로고침 문의

0

119

1

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

0

151

2

Next 14 사용해도 될까요?

0

452

1

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

0

348

1

url 오류 질문있습니다

0

210

1

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

0

372

1

sudo certbot --nginx 에러

0

1271

2

Minified React error 콘솔에러 (hydrate)

0

467

1

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

0

245

1

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

0

325

1

npm run build 에러

0

517

1

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

0

381

1

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

0

335

2

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

0

283

1

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

0

235

2

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

0

198

1