2010-06-22 3 views
6

하위 도메인의 PHP 응용 프로그램과 다른 하위 도메인의 Ruby 응용 프로그램간에 세션을 공유 할 수 있습니까?Ruby와 PHP 사이의 세션 공유

나는 여기에서 그것을 어디에서 가져갈 지 정말로 모른다. 쿠키를 모든 하위 도메인에 대해 유효하도록 루트 도메인에 수동으로 설정할 수 있음을 알고 있지만 하위 도메인간에 공유되도록 세션을/설정하는 방법은 무엇입니까?

저는 주로 내 하위 도메인의 로그인을 공유하기 위해 이것을 사용하고 싶습니다.

지식을 위해서, 문제에 대한 잘못된 접근이라면, 행할 수있는 방법 일지라도 나는 그것을하는 방법과 이해하지 못하는 이유를 모두 이해하고 싶습니다.

감사합니다.

+0

파티에 매우 늦었지만 최근에이 문제를 직접 겪었고 내 블로그에 Rails PHP- 전투 가능한 세션 저장소를 게시했습니다 (이는 비 레일스 응용 프로그램에 원칙을 적용하기에 충분히 쉬워야 함). http : //watsonbox.github.com/blog/2012/05/01/sharing-session-between-rails-and-php/ –

답변

6

그런 방식으로 세션을 공유하려면 (PHP/Java/Ruby/등) 세션을 저장하고 데이터베이스에서 액세스해야합니다.

은 참조 : http://php.net/manual/en/function.session-set-save-handler.php

그리고 당신은 루비에 동일한 접근을해야합니다. 합니다 (접두사 기간주의) ".yourhost.com" :

당신은 또한 (도메인 이름을 삽입하는) ""의 기본에서 session.cookie_domain의 PHP 세션 구성 옵션을 변경해야 도메인에서 쿠키를 공유 할 수 있습니다.

2

이것은 동일한 데이터베이스를 공유하고 쿠키를 약간 사용하여 해결할 수 있습니다.

  • 세션
  • 세션
      레일로 전달
    그것을
  • 저장 한 사용자의 자격 증명을 사용하여 데이터베이스와 타임 스탬프 문자열을 임의의 문자열과 함께 쿠키 만들기 PHP
    • 에 오픈
    • 쿠키가 존재하는지 확인하십시오.
    • 형성 데이터베이스를 쿠키에 문자열을 검색
    • 일치하는 항목이 발견되면 다음 세션을 허용하고 동일한 사용자 자격 증명이 그것의 고유 한 어떤 종류의 정보를 저장하는 것이 현명 할 것입니다

을 사용할 수 워크 스테이션이나 브라우저가 쿠키를 복사하지 않고 세션을 도용하도록합니다.

+0

어떤 종류의 고유 정보를 저장해야합니까? 그리고 어떤 종류의 임의의 문자열을 생성해야합니까? 호스트에 대한 정보를 함께 정리하면 "충분히 안전할까요?" 원격 호스트와 원격 주소가 들어있는 MD5 해시가 있습니까? 그것으로 서버 측의 정보를 "일치"시킬 수 있습니다 ... 도움이 필요하십니까? : P –

+0

맞습니다. 고유 한 정보는 HTTP 헤더 + 소금에서 원격 호스트 IP + 사용자 에이전트 행의 MD5 해시 (SHA 인 경우 더 좋음) 일 수 있습니다. – salchams