레일을 사용하여 여러 도메인에서 사용자 세션을 공유하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/274384

문제

사용자가 한 도메인의 웹 사이트에 로그인하고 같은 세션에서 다른 파트너 도메인에 자동으로 액세스 할 수있는 보석, 튜토리얼 또는 솔루션을 알고 있습니까?

두 개의 레일 앱이 실행 중입니다. App-A와 App-B라고 부릅니다. App-A에는 이와 관련된 데이터베이스가 있으며 App-A.com에서 등록 및 로그인에 전원을 공급합니다. 이제 모든 사용자에게 App-A.com 계정으로 App-B.com에 대한 액세스 권한을 부여하거나 App-C.com에 수동으로 로그인하지 않고 App-B.com에 액세스하고 싶습니다.

도움을 주셔서 감사합니다! --표시

도움이 되었습니까?

해결책

두 앱에서 동일한 Session_key를 설정할 수 있습니다. Appa Environment.rb에서는 다음과 같이 Session_key를 변경합니다

Rails::Initializer.run do |config|
   ...  
 config.action_controller.session = {
   :session_key => '_portal_session',
   :secret      => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
  }
  ...
end

APPB에서 똑같이하십시오. (똑같은 비밀을 사용해야합니다)

이제 당신은 세션을 공유했습니다. RESTFull_Authentication을 사용한다고 가정 해 봅시다. user_id. APPA에서 인증하면 세션에서 user_id를 설정합니다. 이제 APPB에서는 세션에 사용자 _id가 있는지 확인하면됩니다.

이것은 전체 스키마 이며이 아이디어를 사용하여 더 자세히 설명 할 수 있습니다.

다른 팁

응용 프로그램에 대한 단일 사인온 솔루션을 만들려면 살펴 보는 것이 좋습니다. 루비카 해결책. 다른 비 레일 애플리케이션에 단일 사인온을 제공하는 데 사용될 수 있으며 인증을 LDAP 또는 기타 인증 제공 업체와 통합 할 수 있습니다.

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