在localhost上的多个应用程序之间共享cookie

时间:2015-10-08 14:07:30

标签: node.js cookies

我的 API (localhost:8080)为我的前端(localhost:3000)发出了Cookie。在开发模式下,cookie域设置为“NULL”。

我有另一个小前端(localhost:9000)。它将被部署为生产中前端的子域,因此我不应该有问题。

在开发过程中,我发现无法从我的小前端请求 API ,我没有CORS问题,但我的API因为小而抛出401前端未发送cookie。 “Send For”属性设置为“Any type of connection”。 Cookie将在一年后过期。我检查了浏览器设置,在两个端口上cookie都有相同的设置和内容。

小前端上,我可以在document.cookie上列出Cookie,但尝试使用

从Cookie中检索任何值
function getCookie(key) {
   var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
   return keyValue ? keyValue[2] : null;
}
getCookie('sid');

OR

$.cookie('sid');

不起作用。

将Cookie域设置为 NULL 不起作用。 将cookie域设置为 localhost 也不起作用,并且chrome不支持它。 (see this)FF支持它,但我有同样的问题

我尝试将Cookie域设置为“.app.localhost”,然后在/ etc / hosts中设置

127.0.0.1:8080 api.app.localhost
127.0.0.1:9000 app.app.localhost
127.0.0.1:3000 front.app.localhost

但我无法访问我的应用。 我想我在这里错过了一些大事。

修改

关于/ etc / hosts文件

经过一番挖掘后,我发现无法在ips上指定端口

但是,您可以这样设置:

127.0.0.1 api.app.localhost:8080
127.0.0.1 app.app.localhost:3000
127.0.0.1 app2.app.localhost:9000

我可以访问并登录我的app.app.localhost:3000并将Cookie设置为.app.localhost,当我转到app.app.localhost:9000我可以看到有一个包含我的sessionId的cookie设置为.app.localhost作为域和Any kind of connection

然而,与上述相同的问题。

0 个答案:

没有答案