문제

쿠키를 설정하고 사용자가 로그인하면 다른 서버로 리디렉션하는 Rails 앱이 있습니다. 그러나 Rails 앱 세트가 어떤 이유로 든 Rails 앱 세트를 보지 못하는 쿠키. http_only를 False로 설정하려고 시도했지만 도메인이 내 Rails 앱과 동일하지 않으면 쿠키조차 볼 수 없습니다. 쿠키를 설정하는 데 사용하는 코드는 다음과 같습니다.

cookies[:dev_appserver_login] = 
  { :value => "#{email}:#{nick}:#{admin}:#{hsh}",
    :domain => "webserver-to-redirect-to",
    :expires => 30.days.from_now }

redirect_to session[:dest_url]

수동으로 쿠키를 만들면 웹 개발자 확장 Firefox에서는 잘 작동하지만 레일이 할 때는 아닙니다. 어떤 아이디어?

도움이 되었습니까?

해결책

리디렉션 및 리디렉션 된 서버는 무엇입니까? '도메인'을 현재 호스트 이름 또는 상위 도메인으로 만 설정할 수 있으므로 A.example.com에 있고 B.example.com으로 리디렉션하는 경우 '도메인'을 .example로 설정해야합니다. com, ~ 아니다 B.example.com 코드 스 니펫에 암시 된대로.

. wheneerelse.com.)

다른 팁

도메인이 내 레일 앱과 동일하지 않으면 여전히 쿠키조차 볼 수 없습니다.

그것이 쿠키가 작동하는 방식입니다. IP로 직접 액세스하는 경우 웹 브라우저에 관한 한 '도메인'은 IP이므로 동일한 규칙이 적용됩니다.

/etc /hosts 파일을 편집하고 앱의 호스트 이름을 만들어 개발 모드 에서이 문제를 해결할 수 있습니다.

127.0.0.1 app1.localdev.com, app2.localdev.com

그런 다음 쿠키가 생성되면 도메인을 '.localdev.com'(미리 기간 ')으로 설정하여 LocalDev.com의 하위 도메인의 모든 앱이 읽을 수 있습니다.

또 다른 광범위한 솔루션 (프로덕션 배포에 더 좋지만 더 많은 작업을 설정하는 작업)은 하위 애플에 대한 경로 프록시를 설정하여 AppDomain.com에 대한 요청을 AppDAIN.com/other-app/로 이동하는 것입니다. 다른 앱에 프록시됩니다. 이를 통해 루트 도메인을 공유하고 쿠키를 쉽게 공유 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top