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

이덕희 Lee님의 프로필 이미지
이덕희 Lee

작성한 질문수

Vue로 Nodebird SNS 만들기

6-9. 도메인 연결하기

도메인 연결까지 다되었는데 회원가입시에 403에러가 나오네요

작성

·

2.4K

0

답변 12

1

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

쿠키 문제입니다. 쿠키가 프론트랑 백엔드 서버간에 공유가 안 되고 있어요.

1

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

이전부터 계속 부탁드리는 것이, login의 response 탭을 보여주세요 ㅠㅠㅠ

0

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

쿠키는 Application 탭에서 cookie에 세션쿠키가 존재하는지 확인해봐야 합니다.

이것은 확실히 cors랑 express-session cookie domain문제입니다. doki.com이 맞는지 확인해보세요.

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

로그인 문제는 해결했습니다.

강좌에서 리액트 디비 구조랑 통일한다고 해서 혹시 몰라 따라 수정했었는데 

passport/local.js 에서 email을 userId는 변경하질 않아서 passport가 제대로 작동하지 않은것 같습니다.

그래서 로그인도 되고 기분좋게 다 끝났다 했는데 포스트 글쓰기, 팔로우, 팔로워 등 요청보낼때 에러가 발생합니다.

이게 바로 제로초님이 말한 쿠키 문제 같습니다. 자세한 내용은 이미지와 같습니다.

근데 로컬 에서 npm run dev로 하면 에러없이 잘 작동합니다.

AWS EC2에서만 에러가 발생하니 디버깅하는법을 잘 모르겠습니다.

좋은 하루 되시고 답변 부탁드리겠습니다.ㅠㅠ

노드교과서를 한번 쭉 봐야겠네요 ㅠㅠ

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

front/store/index.js 에서 nuxtServerinit 실행

```

export const actions = {
  nuxtServerInit({ commit, dispatch, state }, { req }) {
    return dispatch('users/loadUser')
  }
}

```

front/store/users.js에서 loadUser 실행

```

async loadUser({
    state,
    commit
  }) {
    try {
      console.log("loadUser");
      //
      const res = await this.$axios.get('/user', {
        withCredentials: true
      })
      console.log("loadUser a");
      commit('setMe', res.data)
      console.log("loadUser b");
    } catch (err) {
      console.error("에러요")
    }
  },

```

back/routes/user.js 에서 get('/') 실행

```

router.get('/', isLoggedIn, async (req, res, next) => {
  const user = req.user;
  res.json(user);
});

```

back/routes/middlewaers.js

```

exports.isLoggedIn = (req, res, next) => {
  if (req.isAuthenticated()) {
    return next();
  }
  return res.status(401).send('로그인이 필요합니다.');
};

```

요기서 에러가 나는것 같습니다.

back/routes/user.js 요기서 isLoggedIn 미들웨어를 삭제하면

loadUser

loadUser a

loadUser b

가 찍힙니다.

삭제안하면

loadUser 까지 찍히고

에러가 발생합니다 401 로그인이 필요합니다.

후..집가서 다시 볼게요 ㅠㅠ

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

사랑합니다 갓로초님 ㅠㅠ

없는 실력으로 따라갈려고 하니 질문도 잘 못하네요ㅠㅠ
아래에서 회원가입, 로그인 확인 가능합니다.ㅠㅠ

http://www.doki3.com

요아래가 백엔드입니다.

http://api.doki3.com/user/login 

소스는 아래와같습니다.

https://github.com/shldhee/vue-nodebird/tree/master/ch1/

고맙습니다 흑흑

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

답변감사드립니다.

네 말씀하신대로 403에러는 이미회원가입이되어있습니다라고 뜹니다.

회원가입은 가입은 정상적으로 되는것 같고 그다음 로그인될때 401 Unauthorized 에러가 발생하는것 같습니다.

가입되지않은 아이디나, 이상한 아이디를 써서 로그인 시도해도 같은 에러가 발생합니다.

예전부터 return, cors, withCredentials 등 신경써서 봤지만 빠진 부분이 있는건지 복붙도 하면서 체크해봤는데 찾기가 힘드네요.

만약 파악되기 힘든 문제라면 어떤 파일 위주로 봐야되는지 알려주시면 다시 코드 비교해보겠습니다.

우선 back/router/user.js, app.js, model.js 등 비교했고

front는 store/user.js 쪽 위주로 봤습니다.

좋은 하루 되십시오!

0

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

401, 403에러에 대한 response 탭부분도 봐주세요(네트워크 탭). 403에러는 제 코드상 이미 회원가입한 경우에 뜨고요. 401에러는 메시지를 확인해봐야 합니다. 그리고 console 탭도 항상 같이 보여주셔야 합니다.

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

서버 다시 시작하니 EC2는 정상적으로 작동되네요.

CORS 에러 같아서 CORS부분도 모두 제로초님 깃허브가서 소스 같은지 확인했습니다.

졸면서 강의를 봐서 그런가 중간중간 빼먹은게 있는건지 진도나가는게 너무 느리네요 ㅠㅠ

회원가입시에는 403에러

로그인시에는 401에러뜬네요

withcredential 확인해보고

app.js에서 cors까지 확인했읍니다.

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

후 우선 ec2 서버 둘다 중지하고 시작하고 다시 설치하려고합니다.

0

이덕희 Lee님의 프로필 이미지
이덕희 Lee
질문자

네 찾아보니 `store/users.js` signup 쪽에 소스가 잘못된거 같아 수정 후 AWS EC2에 다시 올려서 확인 하려고 하는데 잘되던 back쪽분만 아니라 front둘다 무한 로딩 상태인데 혹시 이럴때는 어디를 확인하면 될까요?

front aws ec2 nuxt build 할때도 거의 10분넘게걸려서 기다렸는데 다시 문제가 발생했네요 ㅠㅠ

0

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

콘솔 탭에 에러가 있지 않나요? CORS 에러인지 확인해주세요.

이덕희 Lee님의 프로필 이미지
이덕희 Lee

작성한 질문수

질문하기