[Express] [Nodejs] Как расшифровать express -session cook ie при подключении к socket.io? - PullRequest
1 голос
/ 16 июня 2020

После успешного входа в систему userId и имя пользователя сохраняются на сервере cook ie.

. js

const io = require('socket.io')(http)
const session = require('express-session')


const Allusers = [ {id: 1, name: 'Admin', username: 'admin', password: 'admin'} ]
const socketName = {}

app.use(session({
    name: 'sid',
    resave: false,
    saveUninitialized: false,
    secret: 'secretCode!',

    cookie: {
        httpOnly: false,    
        maxAge: 1000 * 60 * 60 * 24 * 30, // 1  month
        sameSite: true
    }
}))


// FOR USER LOGIN AND SAVING COOKIE
app.post('/login', (req,res) =>{

    const {username, password} = req.body

    if (username && password){

        const user = Allusers.find(user => user.username === username && user.password === password)
        if (user){
            req.session.userId = user.id
            req.session.name = user.name
            return res.redirect('/')
        }

    }
    res.redirect('/login')
})





io.on('connection', (socket) => {

    //   I WANT TO GET NAME AND ID OF THE USER FROM COOKIE, THEN ADD THEM TO socketName as
    //   {'socket_id' : 'Name of the user'}

});

Я хочу чтобы получить name и id пользователя из cook ie, затем добавьте их в socketname как

{'socket_id': 'Имя пользователя'}

Я могу приготовить ie с помощью socket.handshake.headers.cookie, но он зашифрован с помощью секретной строки.

Как я могу расшифровать данные cook ie или подтвердить пользователя из Allusers?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...