当请求来自另一个域时,如何在sailsJS后端应用程序中坚持authentication状态?

我有一个架构,我正在使用sailsJS(自定义node.js实现)作为我的API服务器和angular度前端服务器。 每个应用程序都来自不同的域名。

我怎样才能保持sailsJS api应用程序之间的身份validation会话之间的请求?

Sails有一个集成的req.session对象来维护会话,但是当客户端从另一个域被服务的时候,它似乎没有开箱即用。

从前端应用程序到Sails应用程序执行跨域请求时,您需要检查两件事:

  1. 确保您的Sails应用程序启用了CORS ; 这将确保浏览器不会因安全原因而阻止请求
  2. 确保在您的AJAX请求中设置了withCredentials标志; 这将确保您的cookie被发送到Sails,并保持您的会话。

使用Restangular,您可以使用setDefaultHttpFields设置withCredentials默认使用所有请求; 看到这个答案的细节。