2016-03-20 4 views
0

私はシングルサインオンしていくつかのユーザーデータを共有する(同じtldを持つ)2つのレールアプリを設定しようとしています。 railsapp.comを持っている場合は、2番目のアプリをotherapp.railsapp.comまたはrailsapp.com/otherappとして設定します。私はrailsapp.comが登録/ログインなどを処理する可能性が最も高いでしょう(これが最善の解決策でない場合は、提案に開放してください)。2レールのアプリケーションでシングルサインオンとデータ共有を行うにはどうすればよいですか?

アバターにサインアップしてアップロードし、メインアプリでユーザーポイントを累積すると、他のアプリと自分のプロフィールにアバターとポイント合計が表示されます。これを達成する簡単な方法はありますか?利用可能なSSOソリューションは、同じユーザーIDを持つ2番目のアプリケーションでユーザーを作成しますか?もしそうでなければ、彼らはどうやってつながっていますか? (つまり、2人のユーザーポイントとアバターで共有したい情報を他のアプリにどのように問い合わせることができますか)最初は2つのアプリの間でデータベースやユーザーテーブルを共有していましたが、簡単な解決法があるはずだと考えて助けてください。

答えて

1

私は、最も簡単な解決策は、あなたが.railsapp.comドメインにクッキーを設定した場合、あなたはotherapp.railsapp.comまたは他のサブドメインに要求を行うときに、それが(ちょうどそれがセキュリティ上の問題であるかもしれないとと強調)送信されるべきだと思います。クッキーを安全なものとしてマークすることを忘れないでください!

この作業を行う必要があるかもしれないもう1つの点は、認証トークンをデータベースに保存して、2つのアプリケーション間で共有できるようにすることです。

免責事項:私はもうRailsに関する多くの経験がないので、Deviseのようなフレームワークの中には、このような何かを行うことができるかどうかはわかりません。

編集

は好奇心旺盛だと... Googleが答えを持っていた:http://codetheory.in/rails-devise-omniauth-sso/

+0

私は...これを行う方法を動作するようにしようとしますが、多分その私の頭の上に行くとき、私は以前にそのポストを見ていましたこれがどうやってユーザーデータを同期するのか分かりませんか?ユーザーIDはすべてのクライアントアプリで同じですか?これにより、あるアプリは別のアプリのユーザーデータ(アバター/ユーザーポイントなど)を照会できますか? – BigJ

+0

@BigJ共有DBがあるので、認証トークンを持っている限り、すべてのアプリで同じデータにアクセスできます。下部の全体的な概念フローを参照してください。 DBのプライマリキーを参照している場合はUser IDによって、共有DBのために同じになるでしょう。しかし、セッションIDは基本的にログインしているユーザーを「覚えている」さまざまなアプリごとに異なります。 (私は記事の著者です) – Rishabh

関連する問題