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

노른자님의 프로필 이미지
노른자

작성한 질문수

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

로그인 문제 해결하기

passport kakao 시도중 질문

작성

·

170

0

노드교과서 강의도 들었었는데, 그때는 카카오 패스포트할때는 아예 프론트서버없이 템플릿엔진으로 랜더링해줘서 /kakao/callback 라우터에서 그냥 redirect('/')해주면 됐었는데,

이번엔 프론트서버(3000)와 백엔드서버(8080)이 나뉘어서 그런지 redirect('/') 해주면 로그인후에 localhost:8080으로 가버려서 해매고있습니다.

local passport처럼 데이터값을 프론트에서 받아와서 action.payload에 넣어주는 방법을 알고싶습니다... 강의밖의 내용이지만 알려주신다면 너무 감사할것같습니다 이거때문에 너무 오래 해매고있어서요 ㅠㅠ 

답변 1

0

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

솔직히 말하면, 워낙 복잡해서, 여기서 전부 설명드릴 수 있을지 모르겠습니다.

일단 서버가 두 개입니다. 프론트와 백엔드로요.

그래서 먼저 카카오 로그인을 할 때 주소를 백엔드로 두시고(어차피 리다이렉트는 필수입니다) 백엔드 로그인을 진행하면 됩니다.

그러면 백엔드 서버에는 로그인 되어있는 상황이고, 프론트에서는 로그인이 안 되어있는 상황입니다. 그래서 프론트 서버에도 로그인을 해줘야하는데, 리다이렉트uri를 프론트 서버의 한 라우터로 연결해서(라우터 만드는 방법은 nextjs api routes 참고하세요) 거기에도 똑같은 세션 쿠키를 심어주어야 합니다. 그 후 프론트 라우터에서 다시 브라우저 화면으로 리다이렉트해주면 됩니다.

브라우저 - 백엔드 - 프론트엔드 라우터 - 브라우저 라고 보시면 됩니다. 쿠키 공유가 핵심입니다.

노른자님의 프로필 이미지
노른자
질문자

쿠키를 공유하는것 까지는 알겠는데 쿠키를 어떻게 사용해야하죠? 

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

쿠키는 요청을 보낼 때 자동으로 보내져서 건들 게 없습니다.

노른자님의 프로필 이미지
노른자

작성한 질문수

질문하기