Passport connect.sid не включен в заголовок socket.io-client - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь аутентифицировать соединение socket.io на бэкэнде. Итак, прямо сейчас пользователь сначала авторизуется через Https-запрос с паспортом. Паспорт затем установите connect.sid. После установки connect.sid мой клиент пытается установить соединение через сокет через socket.io-client. Однако он не может получить connect.sid и не включает его в заголовок.

backend

app.use(session({
    secret:'secret',
    resave: false, 
    saveUninitialized: true,
    store: mongooseSessionStore,
    key: 'connect.sid',
    cookie:{
        httpOnly:false, 
        secure: true
    }
}))

const io = require('socket.io')(httpsServer)
io.use((socket,next) => {
    console.log(socket.handshake.headers)
    consoe.log(socket.request.headers.cookie)
    next()
})


client

const socketOptions = {
    secure:true,
    reconnect: true,
    rejectUnauthorized : false,
    transportOptions:{
        polling:{
            extraHeaders:{
                'Cookie':'hello=test'
            }
        }
    }
}
this.socket = io.connect("SERVERURL", socketOptions)

поэтому консоль успешно распечатать hello = test, но он не регистрирует ни файлы cookie, которые я установил вручную, ни connect.sid. Я пытаюсь использовать повар ie, чтобы убедиться, что это действительный запрос подключения к сокету

...