いくつかのWebサービスを作成したいのですが、すべてログイン/パス認証が必要になります。それらをすべて同期させたい(1つのログイン、すべてのサービスに対して1つのパスワード)だけでなく、それらの間でセッションを共有したい。
ユーザーがサービスAにログインし、サービスBを開くと、サービスAと同様にサービスBでも同じアカウントに自動的にログインします。
これは通常どのように実装されますか?
いくつかのWebサービスを作成したいのですが、すべてログイン/パス認証が必要になります。それらをすべて同期させたい(1つのログイン、すべてのサービスに対して1つのパスワード)だけでなく、それらの間でセッションを共有したい。
ユーザーがサービスAにログインし、サービスBを開くと、サービスAと同様にサービスBでも同じアカウントに自動的にログインします。
これは通常どのように実装されますか?
セッションをサポートするデータベースを検討します。
重要なセッション情報を保持するデータベース レコードを持つことができます。データベースが BLOB フィールドをサポートしている場合は、より複雑なセッション データを保持することもできます。
レコードには、Web サービス要求が提示する「Cookie のこと」があり、サービス実装コードはその「Cookie のこと」を取得し、データベース テーブルを調べて、ログイン イベントが最近正しく発生したかどうかを確認します。
(「Cookie のこと」と言うのは、それが Web サービスである場合、実際にはブラウザーが入ってくるわけではない可能性があるためです)。
これは分散セッションと呼ばれ、実装は Web サーバーごとに異なります。
Tomcat の場合: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
永続化された変数をデータベースに保存することもできます。これは、あなたのケースでは簡単かもしれません。