질문을 삭제하지 말아주세요.!
 
1
0
-1

서비스 하고 있는 도메인들이

{유저아이디}.example.com 입니다.

로그인을 중앙에서 처리하려고 

auth.example.com 으로 연결 해놓았는데..


세션이 유지가 되지 않습니다..

config/session.php 에서  도메인을 .example.com 으로도 해보고 *.example.com 으로도 해보았는데

안됩니다..


원래는 redis를 쓰고 있었는데 이것 때문에 db 세션으로 바꿔보았지만 소용이 없습니다..

무엇이 누락된 것일가요 ?


서버 세팅은 빨간책에 나온 ec2 기본입니다.

  1. 갸르릉

    브라우저 상에서 세션 쿠키의 도메인이 설정한 값으로 되어 있을까요?

    쿠키를 모두 지운 후에도 세션 공유가 되지 않나요??

CommentAdd your comment...

2 answers

  1.  
    1
    0
    -1

    1)

    "http cookie domain wildcard"라는 키워드로 검색해봤습니다. 요약하면 최상위 도메인을 쿠키의 도메인 값으로 쓰면, 하위 도메인도 포함된다는 내용입니다. 

    https://stackoverflow.com/a/23086139

    따라서 a.example.com 에도 'domain' => 'example.com', b.example.com 에서도 'domain' => 'example.com'으로 설정하시면 될 것 같습니다. 


    2) 

    a.example.com을 서비스하는 서버와 b.example.com을 서비스하는 서버가 공유된 세션 저장소를 사용하고 있죠?


    3) 

    a.example.com으로 요청하는 클라이언트의 세션 키 및 b.example.com으로 요청하는 클라이언트의 세션 키가 세션 저장소에 있는 지 확인해보셨나요? 그리고, a.example.com의 리소스를 요청한 브라우저의 SET-COOKIE 헤더와 b.example.com의 리소스를 요청한 브라우저의 SET-COOKIE 헤더에 laravel_session 값이 정확히 박혀 있는지 확인해 보세요.


    4)

    혹, 하나의 웹 서비스가 여러 대의 인스턴스로 되어 있고, LB에서 제공하는 Sticky Session등을 사용하고 있다면, 해당 기능을 꺼 보시기 바랍니다 (아래 그림은 꽤 오래전에 모던퍼그 슬랙에 Sticky Session의 문제점에 관해 공유했던 내용입니다.)


    *)

    빨간 책은 분산 환경을 겨냥하여 서버 셋팅 내용을 담지 않았습니다. 

    1. 안유성

      조언 감사합니다..

      이유는 잘 모르겠지만,

      nginx restart 하니간 되네요 ;;


      혹시 안되면 운영중에 안되면 말씀해주신대로 바꿔서 해보겠습니다 감사합니다.

    CommentAdd your comment...
  2.  
    1
    0
    -1
    저는 하나의 어플리케이션에 여러 도메인을 붙여서 사용하는데요. 로그인 세션 공유를 위해서 .env에 아래와 같이 설정해서 사용합니다.


    SESSION_DOMAIN=.owhoo.net



      CommentAdd your comment...