0

www.a.comwww.b.com에서 실행되는 두 개의 개별 응용 프로그램이 있습니다. 두 번째는 레일즈 3 애플리케이션이다. 쿠키를 공유하여 두 사람이 공통적으로 사용하는 로그인 정보를 얻으려면 www.a.com/b에있는 모든 요청을 www.b.com으로 리디렉션하고 있습니다. 나는 이것을 달성하기 위해 아파치 리버스 프록시를 사용하고이 모든 자산/자바 스크립트 링크가 루트로 www.a.com 가정에 의해 형성지고 있다는 사실에서 잘 떨어져 작동두 도메인, 역 프록시에서 작동하는 레일 응용 프로그램을 얻는 방법

ProxyPass /b/ http://www.b.com/ 

.

<%= javascript_include_tag 'js/bootstrap-datepicker'%> 

이다 나는이 내가 수행하여이 문제를 해결하고 http://a.com/b/assets/js/bootstrap-datepicker.js

되고 싶어 반면 링크 http://a.com/assets/js/bootstrap-datepicker.js 결과 : 예를 들어 이 잘 작동

config.action_controller.asset_host = "http://a.com/analytics" 

내가 찾을 경우에도 해커가되는 해결책. 응용 프로그램의 다른 페이지에 링크를 걸면 실제 문제가 발생합니다. 따라서 page이라는 페이지에 대한 링크를 설정하려면 b/page을 내 href에 넣어야합니다. a.com을 사용하여 응용 프로그램에 액세스 할 때 제대로 작동합니다. 하지만 링크가 www.b.com/b/page을 가리 키기 시작하면서 b.com을 사용하여 앱에 액세스하는 것을 허용하지 않습니다. 분명히 존재하지 않습니다.

어떻게 a.com 또는 b.com을 사용하여 응용 프로그램에 액세스 할 수 있도록 모든 작업을 수행 할 수 있습니까?

답변

0

문제의 대체 솔루션으로 리버스 프록시 대신 하위 도메인과 CNAME/ALIAS를 사용하십시오.

대신 a.com/b에서 b.com으로 역방향 프록시를 수행하십시오. DNS의 CNAME/ALIAS를 사용하여 b.com에서 실행중인 응용 프로그램에 new.a.com을 지정합니다.

쿠키 도메인을 www.a.com 대신 a.com으로 설정하여 쿠키가 하위 도메인간에 공유되도록하십시오.

설정/초기화/session_store.rb

YouApplicationName::Application.config.session_store :cookie_store, key: 'some_key', :domain => ".a.com" 
관련 문제