1

我正在尝试使用 ExpressJS 的 cookie 会话和 AngularJS 实现身份验证。问题是即使我可以让 ExpressJS 发送会话 cookie,Angular 也不会在后续请求中发送它们。

我在 192.168.1.2:3000 运行后端服务器,在 192.168.1.2:3501 运行 yeoman 服务器,所以这里有跨域问题吗?为了让 $http 正常工作,我已经用 ExpressJS 做了正常的 CORS 工作,但我不确定如何让 cookie 工作。

4

2 回答 2

1

您是否检查过您的请求是在withCredentials标志设置为的情况下发送的true吗?

在 Angular 中,这可以通过在 HTTP 请求配置对象中完成,例如

//...
$http.get(myUrl, {withCredentials: true})
//...

或者,如果您不想一直重新配置它,请使用$httpProvider

myApp.config(['$httpProvider', function ($httpProvider) {
  $httpProvider.defaults.withCredentials = true;
}]);
于 2014-07-23T08:19:48.287 回答
0

要让 angularJS 中的 cookie 工作,您可以点击此链接

我在后端(expressJS)中维护会话变量并将其返回给前端(angularJS)中的$cookies对象。

所以当我注销时,它会删除 angularJS 中的 cookie 和后端的 session 变量。

于 2013-02-03T17:07:07.063 回答