Не удается поделиться файлами cookie и сеансом на поддомене

У меня есть два домена. Один из них - opencubes.io, другой - my.opencubes.io. Моя экспресс-установка выглядит так:

  server.use express.cookieParser(config.securitySalt)
  server.use express.session cookie: domain: ".opencubes.io"
  server.use flash()
  require("./passport") passport, config

  # use passport session
  server.use passport.initialize()
  server.use passport.session()

Проблема в том, что пользователь не распознается в поддомене. Я сделал маршрут, который возвращает текущее имя пользователя для теста, и всякий раз, когда я вхожу в домен, cookie connect.sid создается (с установленным доменом .opencubes.io). Информация о файлах cookie выглядит в поддомене следующим образом:

печенье

И так, когда в браузере (в поддомене), я запускаю $.get('//opencubes.io/api/v1/users/$.json', function(data){console.log(data)}), это просто вернуть {}. Запрос:

Host: opencubes.io
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: */*
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://my.opencubes.io/
Origin: http://my.opencubes.io
Connection: keep-alive

И ответ:

Access-Allow-Control-Origin: "*"
Connection: "keep-alive"
Content-Length: "2"
Content-Type: "application/json; charset=utf-8"
Date: "Wed, 20 Aug 2014 13:40:38 GMT"
Etag: "W/"2-2745614147""
Server: "nginx/1.7.4"
Set-Cookie: "connect.sid=s%3AQ_ruHfe...yJrw; Domain=.opencubes.io; Path=/; HttpOnly"
Vary: "X-HTTP-Method-Override"
x-content-type-option: "nosniff"

Как поделиться sid, чтобы поддомен мог отправлять запросы "от своего имени" без повторного запроса учетных данных?

Замечания:

Субдомен - это перенаправление nginx наopencubes.io/dashboard

1 ответ

Я только добавил эту строку:

$.ajaxSetup({xhrFields: { withCredentials: true }});

И это работает. благодарю вас:)

Другие вопросы по тегам