Railsを使用して複数のドメインでユーザーセッションを共有するにはどうすればよいですか?

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

質問

ユーザーが1つのドメインでWebサイトにサインインし、同じセッションで他のパートナードメインへのアクセスを自動的に許可する宝石、チュートリアル、またはソリューションを知っている人はいますか?

2つのRailsアプリを実行しています。App-AとApp-Bと呼びましょう。 App-Aにはデータベースが関連付けられており、App-A.comでの登録とログインが可能です。 App-A.comアカウントを持つすべてのユーザーにApp-B.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では、user_idがセッションに存在するかどうかを確認するだけです。

これは全体的なスキーマです。このアイデアを使用してさらに詳しく説明できます。

他のヒント

アプリケーションのシングルサインオンソリューションを作成する場合は、 RubyCAS ソリューション。また、他のRails以外のアプリケーションにシングルサインオンを提供するために使用でき、LDAPまたは他の認証プロバイダーと認証を統合できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top