我想做一些网络服务,所有这些都需要登录/通过授权。我想让它们保持同步(一个登录名,一个所有服务的密码),但我也想在它们之间共享会话。
如果用户登录到服务 A,并打开服务 B,它会自动登录到服务 B 上的同一帐户,就像在服务 A 中一样。
这通常是如何实现的?
我想做一些网络服务,所有这些都需要登录/通过授权。我想让它们保持同步(一个登录名,一个所有服务的密码),但我也想在它们之间共享会话。
如果用户登录到服务 A,并打开服务 B,它会自动登录到服务 B 上的同一帐户,就像在服务 A 中一样。
这通常是如何实现的?
我会考虑一个数据库来支持会话。
您可以有一个包含关键会话信息的数据库记录。如果数据库支持 BLOB 字段,您甚至可以保存更复杂的会话数据。
该记录将具有 Web 服务请求将呈现的“cookie 事物”,服务实现代码将采用该“cookie 事物”并查看数据库表以查看最近是否正确发生了登录事件。
(我说“cookie 的东西”,因为如果它是一个网络服务,它实际上可能不是一个浏览器进来)。
这称为分布式会话,每个网络服务器的实现都不同。
对于 Tomcat:http: //tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
您还可以将持久变量存储在数据库中,这在您的情况下可能更容易。