2008-09-19 1 views
5

같은 세션을 공유하는 여러 서버에서 레일 앱을 사용하고 싶습니다. 같은 서버에서 할 수 있지만 다른 서버에서 공유 할 수 있는지 여부는 알 수 없습니다. 누구나 이미 그것을했거나 그것을하는 방법을 알고 있습니까?레일스 서버 오버 세션

감사합니다.

답변

3

동일한 비밀을 사용하도록하여 응용 프로그램을 설정하여 응용 프로그램 설정 방법, 당신은 쉽게 동일한 도메인 (foo.domain, bar.domain, 도메인)의 사이트에서 쿠키를 공유 할 수 있습니다에 따라 : http://www.russellquinn.com/2008/01/30/multiple-rails-applications/

이제 sdfsf.com, dsfsadfsdafdsaf.com 등과 같이 서로 다른 사이트가있는 경우 쿠키의 특성상 쿠키가 특정 도메인으로 제한되므로 더 많은 트릭을 수행해야합니다. 기본적으로 크로스 사이트 스크립팅을 사용하여 세션을 하이재킹하는 대신 다른 세션에서 세션을 읽을 수 있습니다.

그런 경우 동일한 쿠키 비밀 등을 사용하고 일부 교차 사이트 스크립팅을 조합하면 수동으로 세션 정보를 추출하여 각 사이트에서 다시 만들 수 있습니다 (또는 ActiveRecord 세션 {또는 NFS 세션 dir}, 기존 것과 링크). 쉬운 일은 아니지만 할 수 있습니다.

또는 이전에 저술 한 로우 테크 (low-tech) 방법은 단순히 로그인 페이지에서 각 사이트에 앱 쿠키를 설정하고 다음 쿠키로 반송하는 특수하게 조작 된 로그인 페이지를 방문하게하는 것입니다. 꽤 아니야.

0

데이터베이스 기반 세션을 사용해보십시오.

6

Database Session store을 사용하십시오. 그것의 짧은은 이것이다 :

레일이 줄

config.action_controller.session_store = :active_record_store