개발자

로그인 구현 관련 질문 subdomain.com

2024년 06월 19일조회 68

안녕하세요 슬랙처럼 로그인을 하면 워크스페이스 리스트가 나오고 해당 워크스페이스를 클릭하면 해당 워크 스페이스로 로그인이 되는 페이지를 구현하려 하는데요. Next.js를 사용중이고 iron-session 라이브러리 통해서 세션을 저장하고 있습니다. ex) app.oursite.com <- 통합 로그인 페이지 워크스페이스 클릭하면 해당 워크스페이스 로그인을 하고 세션을 저장해서 워크 스페이스 사이트로 redirect 시키려 하는데, const session = await getIronSession<Session>(cookies(), { cookieName: 'cookie', password: IRON_SESSION_SECRET_KEY, cookieOptions: { secure: false, // 로컬 테스트에서는 false, 실제 배포에서는 true로 설정 sameSite: 'Lax', // sameSite 옵션을 Lax로 설정 domain: 'localhost', // 로컬 테스트 시 domain 설정을 제거하거나 localhost로 설정 path: '/', }, }); {workspace1}.ourstie.com {workspace2}.ourstie.com 세션 저장이랑 redirect 처리했을때 세션 저장하고 해당 페이지 확인은 하였는데 해당 페이지에서 로그인 인증은 제대로 되지 않고 있습니다. 로그인 페이지로 이동되더라고요 로그인이 안되는 원인으로 짐작가는게 있으면 알려주시면 감사하겠습니다

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 0

답변이 없을 때 보이는 아이콘

첫 답변을 기다리고 있어요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 06월 19일

여러 서브 도메인 간에 세션을 공유하는 것은 종종 CORS나 쿠키 설정 등에 의해 복잡하게 되곤 합니다. 이 문제 중 일부는 'SameSite' 쿠키 설정과 관련이 있을 수 있습니다. 'SameSite=Lax'를 사용하면, 현재 사이트와 동일한 사이트에서만 쿠키가 전송됩니다. 이것은 서브 도메인 간에 쿠키를 공유하기 어렵게 만듭니다. 전체 도메인 (예: '.oursite.com')에 대해 세션 쿠키를 설정하여 이 문제를 해결할 수 있습니다. 다음과 같이 변경해 보시기 바랍니다: ```javascript { cookieOptions: { secure: false, sameSite: 'None', domain: '.oursite.com', path: '/', } ``` 또한 주의할 점은 secure 옵션이 true로 설정되어 있는 경우, 브라우저는 HTTPS 연결에서만 쿠키를 전송하므로 배포 환경에서도 반드시 HTTPS를 사용해야 한다는 것입니다. 따라서 로컬 개발 환경에서 테스트하기 위해서는 secure 옵션을 false로 두거나, local development setup에 SSL을 구성하세요. 마지막으로 모든 브라우저가 동일한 방식으로 작동하지는 않으므로 브라우저 간 차이를 확인하는 것도 중요합니다. 고려해야 할 또 다른 측면은 CORS 설정입니다. 서버는 다른 도메인에서 요청을 허용하도록 CORS 정책을 올바르게 구성해야 합니다. 무엇이 문제였는지 확실히 파악하기 위해서는, 네트워크 탭을 확인하여 세션 쿠키가 실제로 응답 헤더에 있는지, 그리고 브라우저가 이를 저장하고 있지만 전송하지 않고 있는지 여부를 확인하는 것이 중요합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!