Я использую экспресс-сессию. Локально работает, но при развертывании в рабочей среде интерфейс (frontend.example.com
) не сохраняет cookie, возвращаемый из API (api.example.com
). Я делаю запрос внешнего интерфейса с withCredentials:true
(axios). Вот мой код на бэкэнде (отредактированный для краткости):
const cors = require('cors');
var session = require('express-session');
var SequelizeStore = require('connect-session-sequelize')(session.Store);
const sessionStore = new SequelizeStore({
db: db.sequelize,
checkExpirationInterval: 15 * 60 * 1000, // The interval at which to cleanup expired sessions in milliseconds.
expiration: sessionExpiration,
});
sessionStore.sync();
const app = express();
// corsOrigin is a function that returns a matching domain
app.use(cors({ origin: corsOrigin, credentials: true }));
app.use(
session({
name: 'sid',
secret: process.env.SESSION_SECRET,
store: sessionStore,
saveUninitialized: true,
resave: false,
proxy: false,
cookie: {
maxAge: sessionExpiration,
httpOnly: false,
domain: '.example.com',
secure: false,
},
})
);
Я думаю, что это проблема под / междоменная, но я ожидал, что domain: '.example.com'
решит проблему. Есть мысли?