Как реализовать передачу кук сейсии на express.js и vue.js на разных портах?

Для реализации передачи кук сессии между Express.js, который работает на одном порту, и Vue.js, который работает на другом порту, мы можем использовать проксирование запросов. В этом случае Express.js будет работать на порту, который будет выставлен в качестве порта прокси, и все запросы с Vue.js будут перенаправляться на этот порт.

Вот как можно настроить передачу кук сессии между Express.js и Vue.js на разных портах:

1. В настройках Express.js (файл, обычно называемый app.js или index.js), установите trust proxy на true и укажите опцию secure для кук в соответствии с используемым протоколом (HTTP или HTTPS).

const express = require('express');
const app = express();

app.set('trust proxy', true); // указываем доверять прокси
app.use(express.cookieParser());
app.use(express.session({
    secret: 'your-secret',
    resave: true,
    saveUninitialized: true,
    cookie: {
        secure: false // установите true, если используете HTTPS
    }
}));

// Настройте маршруты Express.js
app.get('/', (req, res) => {
    // Возвращаем HTML-шаблон, в котором будет использоваться Vue.js
    res.send('<html><body><div id="app"></div><script src="http://localhost:8080/app.js"></script></body></html>');
});

// Запустите сервер Express.js на нужном порту
app.listen(3000, () => {
    console.log('Express.js server is running on port 3000');
});

2. В конфигурации Vue.js, мы можем использовать proxyTable для перенаправления всех запросов с порта Vue.js на порт Express.js.

В файле config/index.js в разделе dev, мы можем добавить следующую конфигурацию:

module.exports = {
    // ...
    dev: {
        // ...
        proxyTable: {
            '/': {
                target: 'http://localhost:3000', // установите адрес и порт вашего сервера Express.js
                changeOrigin: true
            }
        }
    }
    // ...
};

В результате, все запросы к порту Vue.js будут перенаправлены на порт Express.js, сохраняя при этом куки сессии.

Вот как можно реализовать передачу кук сессии между Express.js и Vue.js на разных портах. Это позволит использовать Express.js для управления сессиями и сохранения состояния на сервере, а Vue.js для отображения контента пользователю на клиентской стороне.