当请求来自另一个域时,如何在sailsJS后端应用程序中坚持authentication状态?
我有一个架构,我正在使用sailsJS(自定义node.js实现)作为我的API服务器和angular度前端服务器。 每个应用程序都来自不同的域名。
我怎样才能保持sailsJS api应用程序之间的身份validation会话之间的请求?
Sails有一个集成的req.session对象来维护会话,但是当客户端从另一个域被服务的时候,它似乎没有开箱即用。
从前端应用程序到Sails应用程序执行跨域请求时,您需要检查两件事:
- 确保您的Sails应用程序启用了CORS ; 这将确保浏览器不会因安全原因而阻止请求
- 确保在您的AJAX请求中设置了
withCredentials
标志; 这将确保您的cookie被发送到Sails,并保持您的会话。
使用Restangular,您可以使用setDefaultHttpFields
设置withCredentials
默认使用所有请求; 看到这个答案的细节。