基于浏览器的应用通过REST服务进行身份验

时间:2012-05-30 19:49:36

标签: javascript authentication cors

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

我想将我的浏览器应用分开,并从与REST服务不同的Web服务器提供其页面。我可以使用跨源资源共享来继续从浏览器到REST服务进行XmlHttpRequest调用,但我无法弄清楚身份验证。

  1. 我将XmlHttpRequest发送给身份验证服务
  2. REST服务器在响应中设置cookie
  3. 当浏览器收到成功请求时,会将应用程序移至下一页
  4. 下一页不会在登录页面上维护cookie设置,因此所有对REST服务的XmlHttpRequest调用都会失败并显示401
  5. 解决这个问题的最佳方法是什么?如果cookie认证不合适,我应该在这种情况下使用什么?

1 个答案:

答案 0 :(得分:0)

我的建议是在两台服务器前运行Apache或类似的Web服务器并使用代理模块。这样所有的呼叫都是同一个主机,所以cookie保持不变。这在我的许多项目中都有用,包括基于cookie的认证。