Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

현재 다크 모드 쿠키를 레이아웃 내 자체 쿠키로 사용 중입니다.

 

이를 라이믹스에서 제공하는 rx_color_scheme 쿠키로 연동시키고 싶은데, 문제는 rx_color_scheme 쿠키의 도메인 설정이 라이믹스에 설정된 도메인만으로 되어 있어서, 상위 도메인에서 해당 쿠키에 접근할 수가 없네요.

 

코어 수정 없이 rx_color_scheme 쿠키의 도메인 설정이 .domain.com 형식이 되도록 할 수 있나요?

  • profile
    쿠키는 서버가 사용자의 브라우저에 데이터를 보내줘 브라우저상에 저장되는 것을 말합니다.

    쿠키데이터는 도메인별로 다르게 적용됩니다.

    즉, 도메인이 A도메인과 B도메인이 1차 2차 도메인의 차이가 있더라도 각각 데이터를 저장하는 방식으로 구현되어있습니다.

    굳이 도메인별로 같은 데이터를 공유하고 싶으시면 쿠키값을 변경하는 저장값에

    setcookie("rx_color_scheme", "dark", time()+3600, "/", ".example.com"); <- 원하는 도메인을 저장하도록 하시면 됩니다.

    이코드는 PHP코드이기 때문에 PHP에서 실행하셔야 합니다.

    앞에서부터 이름, 값, 쿠키저장시간, 옵션(비워둬두됩니다.), 도메인입니다.
  • profile ?
    답변 감사합니다. 그런데 라이믹스에서 정식으로 제공하는

    Rhymix\Framework\UA::setColorScheme(string $color_scheme)
    setColorScheme(color_scheme)

    위 함수를 이용하는 방법으로는 어려울까요? 아까전에 비슷한 방법으로 rx_color_scheme 쿠키에다가 .example.com 도메인을 직접 지정해서 해봤는데 정작 라이믹스에서는 인식하지 않는 것 같아서요. 해당 쿠키만 라이믹스가 .example.com 형식도 인식하게 하고 싶습니다. (라이믹스는 서브 도메인에서 돌아가고 있습니다.)

    이게 코어 수정 없이는 불가능하다면 그냥 포기해야 할 것 같네요.
  • profile
    쿠키 도메인을 따로 설정할 수 있는 곳은 없습니다.

    해당 쿠키를 굽는 곳은 common/framework/ua.php 맨 아랫부분입니다.

    도메인을 바꿔서 쿠키를 굽더라도 기존에 구워진 쿠키가 있는 경우에는 먹히지 않을 가능성이 높으니 테스트시 무척 주의하셔야 합니다. 이상하게 작동이 안 된다고 생각했는데 알고보니 기존 쿠키 때문인 경우가 무척 많습니다.
  • profile ?
    다시 확인해보니 라이믹스에서 인식하지 않은 게 기존 쿠키 때문이었네요.. ㅎㅎ 아까 안 되길래 도메인까지 일치해야 인식하는 줄 알았습니다. 답변 감사합니다.