После успешного входа в систему 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
?