2009-12-17 7 views
0

기본 쿠키 기반 세션 저장소를 사용하고 있습니다. 기본적으로 저는 heroku를 사용하고 있습니다. 내 앱에서 갈 필요가 있습니다. http://test1.myapp.com heroku to one page : http://myapp.heroku.com/billing - 그래서 heroku url에 갈 때 세션에 액세스해야합니다. heroku 페이지에서 세션 [: user_id]에 액세스하고 싶습니다. 그러나 heroku 페이지로 이동하면 새로운 세션이 생성됩니다.세션 ID 별 액세스 세션 정보

저는 쿼리 문자열의 메인 URL에 session_id를 전달할 수 있다고 생각했지만 heroku url 페이지에서 액세스하는 방법을 모르겠습니다.

session[params[:sid]][:user_id] 

그러나 그것은 작동하지 않습니다 :

나는이 시도. 세션 ID를 알고 있다면 세션 정보에 액세스 할 수 있습니까? 아니면 다른 URL에서 세션 정보를 읽을 수있는 또 다른 방법이 있습니까 (단, 동일한 레일 앱에 모두 포함)?

감사합니다.

+0

쿠키 기반 세션 또는 데이터베이스 기반 세션을 사용하고 있습니까? Cookie 기반 세션에서는 불가능할 수도 있지만 ActiveRecord 세션 저장소를 사용하는 경우 해당 ID를 사용하여 DB에서 세션을 가져 와서 내용을 비 정렬화할 수 있어야합니다. –

+0

쿠키 기반 세션을 사용하고 있습니다. –

답변

0

작동하려면 Heroku 앱이 주 앱과 동일한 TLD에서 실행되도록 도메인을 설정해야합니다. 이를 위해과 같이 결제 애플리케이션에 도메인을 추가

$ heroku domains:add billing.myapp.com 

은 DNS를 설정하는 Heroku's instructions을 수행해야합니다.

그러면 결제 앱이 http://billing.myapp.com/billing (Heroku)에 게시됩니다. 그렇게하면 컨트롤러가 동일한 세션과 쿠키에 액세스 할 수 있어야합니다. 이후,

config.action_controller.session = { :domain => ".myapp.com" } 

나는 또한 당신이 공유 인증 또는 응용 프로그램 사이의 토큰 인증 어떤 종류의 사용을 고려할 수 있음을 언급해야한다 :

은 모두 애플 리케이션에서 세션 환경에서 도메인/production.rb을 설정해야합니다 쿠키가 해킹 당하거나 다른 방법으로 해킹 당할 수 있습니다.