개발자
Next.js 14와 django를 사용해서 웹을 개발하고 있는데 열려있는 Port가 하나밖에 없는 상태에서 로그인을 위한 로직을 작성하였는데 django의 port로 접근할 수 없어 타임 아웃이 발생합니다. next와 django는 같은 pc에서 동작하기 때문에 SSR 을 사용하면 외부에서 django로 접속하지 못해도 데이터를 연동할 수 있을 것이라 생각했습니다. 로그인 로직을 SSR로 구현하려면 어떻게 해야 하나요?
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 11월 09일
Next.js의 SSR(Server Side Rendering)은 클라이언트에서 서버로 이동할 때마다 페이지를 새로 렌더링하는 방식입니다. 따라서, Next.js SSR과 Django를 통하여 로그인 로직을 구현하기 위해서는 다음의 단계를 따르시면 됩니다. 1. **API route 생성:** Next.js는 API 라우팅 기능을 내장하고 있습니다. 따라서 /api/ 아래에 로그인 관련 로직을 처리하는 endpoint를 만들 수 있습니다. `/pages/api/login.js` 파일을 생성하고, 해당 파일에서 POST 메소드를 처리하는 함수를 작성합니다. 예시) ``` export default function handler(req, res) { if (req.method === 'POST') { //...로그인 처리 코드 } } ``` 2. **Django와의 통신:** 생성한 API route 에서는 Django와 통신하여 실제 로그인 처리를 진행해야 합니다. 이때 `node-fetch`, `axios` 등의 패키지를 활용하여 서버 사이드에서 요청을 보낼 수 있습니다. 3. **관련 데이터 SSR:** 로그인 이후 필요한 사용자 정보가 있다면, 이 정보 역시 서버사이드에서 미리 받아올 수 있어야 합니다. Next.js 에서는 getServerSideProps 함수나 getInitialProps 함수를 제공하므로 이 함수내에서 Django와 통신하여 필요한 데이터를 가져오도록 할 수 있습니다. 마지막으로 Django로의 접근이 제한되는 문제에 대해서는 Django가 CORS를 허락하지 않아서라면 이를 해결하기 위해 Django-CORS-HEADERS 라이브러리를 사용하여 Next.js 서버를 허용 리스트에 추가하는 것을 고려해 볼만합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!