이 경우는 내가 이전에 passport 모듈로 local 로그인을 구현하다가 로그인 방법을 바꾸느라 메인 서버인 app.js 에서 관련 셋팅을 지웠다가
다시 카카오 로그인을 구현하면서 관련 셋팅을 넣는 과정에서 빼먹은 것들이 있어서 생긴 오류였다. 빼먹은 셋팅이 없는지 잘 확인하자!
const session = require('express-session')
const passportConfig = require('./passport')
.
.
const passport = require('passport')
passportConfig()
.
.
app.use(
session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: false,
},
})
)
.
.
app.use(passport.initialize())
app.use(passport.session())
그래서 어찌어찌 연결에 성공했는데
오류메세지를 확인해보니 callback으로 지정한 url과 kakao developers에서 지정한 url 주소가 달라서 생기는 오류라고한다. 그런데 눈을 씻고 찾아봐도 다른 점이 없었다.
문제는 메인 서버에서 라우터를 지정할때 기본 주소로 /api 를 지정해 놓은 상태였고 그런 이유로 callback 할때도 자동으로 해당 주소가 따라붙어서 경로가 달라 생긴 이유였고 또 하나는 콜백주소를 '/kakao/callback' 이런식으로 맨 앞에 /를 붙여야 했는데 붙이지 않아서 생긴 오류였다.
해당 이슈에 대한 내 해결법을 정리하자면
1) kakao developers에서 지정한 callback 주소와 각 파일에서 지정한 callback 주소가 일치한지, 만약 메인서버에서 해당 라우터에 /api, /auth 등 기본 주소를 준 상태면 그것도 감안해서 각 불러지는 callback 주소가 일치하게 해줘야 한다.
2) url 맨 앞에도 / 를 붙여주자!
아래와 같이 잘 불러와진다.
그런데 이번에는 User 을 찾을 수 없다??
해당 관련 에러를 해결하면서 포스팅을 이어서 하겠다.