0

いくつかのWebサービスを作成したいのですが、すべてログイン/パス認証が必要になります。それらをすべて同期させたい(1つのログイン、すべてのサービスに対して1つのパスワード)だけでなく、それらの間でセッションを共有したい。

ユーザーがサービスAにログインし、サービスBを開くと、サービスAと同様にサービスBでも同じアカウントに自動的にログインします。

これは通常どのように実装されますか?

4

2 に答える 2

1

セッションをサポートするデータベースを検討します。

重要なセッション情報を保持するデータベース レコードを持つことができます。データベースが BLOB フィールドをサポートしている場合は、より複雑なセッション データを保持することもできます。

レコードには、Web サービス要求が提示する「Cookie のこと」があり、サービス実装コードはその「Cookie のこと」を取得し、データベース テーブルを調べて、ログイン イベントが最近正しく発生したかどうかを確認します。

(「Cookie のこと」と言うのは、それが Web サービスである場合、実際にはブラウザーが入ってくるわけではない可能性があるためです)。

于 2012-12-21T14:20:27.240 に答える
1

これは分散セッションと呼ばれ、実装は Web サーバーごとに異なります。

Tomcat の場合: http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

WebSphere の場合: http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.iseries.doc%2Finfo%2Fiseriesnd%2Fae%2Fcprs_persistent_sessions.html

永続化された変数をデータベースに保存することもできます。これは、あなたのケースでは簡単かもしれません。

于 2012-12-21T14:22:05.277 に答える