0

我构建了一个 RESTful 服务,为 Android 客户端和浏览器客户端提供 XML + JSON。目前,我的 REST 服务使用基于 cookie 的身份验证。一切都在同源策略中协同工作,因为浏览器客户端页面是从提供 REST 服务的同一 Web 服务器提供的。

我想分离我的浏览器应用程序并从与 REST 服务不同的 Web 服务器提供其页面。我可以使用跨域资源共享继续从浏览器向 REST 服务发出 XmlHttpRequest 调用,但我无法确定身份验证。

  1. 我将 XmlHttpRequest 发送到身份验证服务
  2. REST 服务器在响应中设置一个 cookie
  3. 当浏览器接收到成功的请求时,它会将应用程序移动到下一页
  4. 下一页不维护登录页面上设置的 cookie,因此对 REST 服务的所有 XmlHttpRequest 调用都失败并显示 401

解决这个问题的最佳方法是什么?如果 cookie 身份验证不可行,我应该在这种情况下使用什么?

4

1 回答 1

0

我的建议是在两台服务器前运行 Apache 或类似的 Web 服务器并使用代理模块。这样一来,所有的调用都是对同一个主机的,所以 cookie 会保留。这在许多项目中对我有用,包括基于 cookie 的身份验证的项目。

于 2012-06-28T20:30:54.137 回答