0

我想做一些网络服务,所有这些都需要登录/通过授权。我想让它们保持同步(一个登录名,一个所有服务的密码),但我也想在它们之间共享会话。

如果用户登录到服务 A,并打开服务 B,它会自动登录到服务 B 上的同一帐户,就像在服务 A 中一样。

这通常是如何实现的?

4

2 回答 2

1

我会考虑一个数据库来支持会话。

您可以有一个包含关键会话信息的数据库记录。如果数据库支持 BLOB 字段,您甚至可以保存更复杂的会话数据。

该记录将具有 Web 服务请求将呈现的“cookie 事物”,服务实现代码将采用该“cookie 事物”并查看数据库表以查看最近是否正确发生了登录事件。

(我说“cookie 的东西”,因为如果它是一个网络服务,它实际上可能不是一个浏览器进来)。

于 2012-12-21T14:20:27.240 回答
1

这称为分布式会话,每个网络服务器的实现都不同。

对于 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 回答