Я пытаюсь аутентифицировать соединение 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, чтобы убедиться, что это действительный запрос подключения к сокету