Sto utilizzando le ultime versioni di node.js e session.socket.io e questo è come ho impostato la sessione (si ricorda che non sto usando una connessione HTTPS in modo che nessun secure: true
):Autenticazione sicura con node.js e session.socket.io?
app.configure(function() {
app.use(cookieParser);
app.use(express.session({
signed: true,
store: sessionStore,
secret: 'SECRET',
cookie: {
maxAge: 24 * 60 * 60 * 1000,
httpOnly: true
}
}));
});
var sessionSockets = new SessionSockets(io, sessionStore, cookieParser);
// Later
sessionSockets.on('connection', function(error, socket, session) {
// session could be used here to detect if user is logged in
// e.g. login: session.name = 'x'; session.save();
// e.g. checkIfLoggedIn: if (session.name) return true;
});
è il mio codice sicuro/corretto o in che modo posso autenticare l'utente che ha effettuato l'accesso? E 'possibile/raccomandato di cambiare il sid
del cookie sui client (a causa del fatto che è menzionato here)?
passportJs è la cosa migliore per l'autenticazione sicura, la mia raccomandazione è la stessa cosa con passportJS – FLF
Che ne dici di usare socket.id come id della sessione? è anche praticabile? –
@HongZhou, non lo so. Ma so che Passport rende l'autenticazione davvero semplice e se esiste un modulo per l'utilizzo di passaporto e socket.io, ovviamente, qualcun altro l'ha provato e sembra funzionare bene :) – kentcdodds