0

我对 GWTP 中的会话管理有几个基本问​​题。

Client : GWTP, Server - 使用 Guice 和 Jersey 的 Restful WebServices。

当我拥有带有 RPC 机制的后端服务时,应用程序会话管理很简单。但是,由于 GWT 客户端在 Android 上运行,服务器端逻辑使用 Jersey 公开为 Restful Web 服务,我们如何维护会话,因为 Restful WS 是无状态的。现在我们如何在这种情况下实现用户会话?

4

2 回答 2

0

关于会话管理,无论您使用GWT's RPC,RequestFactory还是RequestBuilder.

无论您使用何种通信协议,Web 中的通信基本上都是无状态的。
传统上,会话管理是通过服务器端会话完成的。
但是 RESTfull 服务不应该依赖服务器端会话,因为它违反了 RESTful 原则。所以基本上有两种方法可以做到:

  1. 如果您不太在意违反 restful 原则,您可以部署服务器端会话(有关详细信息,请参阅此处)。
  2. 使用 OAuth ( https://wikis.oracle.com/display/Jersey/OAuth )
  3. 以某种方式将每个请求的凭据/securityToken传递给您的后端。您可能可以通过使用 GWTP 的ClientActionHandlers来做到这一点。
于 2012-06-21T13:02:38.377 回答
0

在经历了来自不同人的大量评论之后,我想到了要做的事情。

我的应用程序也可以从基于浏览器的应用程序和移动设备访问。应用程序最初是为基于浏览器的应用程序编写服务器中的 http 会话管理。现在在获取移动客户端的同时,我们已经实现了 Rest web 服务,移动设备和浏览器客户端也具有相同的服务层。

当用户使用移动设备登录时,我们正在创建一个唯一的身份验证令牌,并将具有此令牌 ID 的 http 会话存储为应用程序中的键、值映射。稍后我们希望来自移动设备的每个用户请求都返回此令牌,并使用此令牌从地图获取会话并继续。

有人对这种方法有任何意见吗?

于 2012-07-02T06:18:34.840 回答