2012-12-27 11 views
25

Stavo cercando il miglior middleware per archiviare i dati di sessione in MongoDB da utilizzare in un'applicazione di produzione che utilizza express?Best Session Storage Middleware per Express + MongoDB

Ho cercato in giro e abbiamo trovato questo:

  1. session-mangusta (https://github.com/donpark/session-mongoose) Secondo il commento dell'autore non è pronto per la produzione per le seguenti ragioni:

    • test insufficiente
    • ottimizzazione zero
    • ci sono meglio opzioni che MongoDB per l'immagazzinamento sessione
  2. collegare-mongo (https://github.com/kcbanner/connect-mongo)

  3. Express-session-mongo (https://github.com/davglass/express-session-mongo)

    Basato su queste classi

    • Sencha Collegare Memory Store
    • Express-session-mongodb
    • di ciaranj
  4. collegare-session-mongo (https://github.com/bartt/connect-session-mongo)

ho cercato al loro codice, stavo cercando di trovare anche un articolo comparison sulle prestazioni. Voi ragazzi avete esperienza per suggerire qual è il migliore?

+1

A meno che non si stia facendo qualcosa di veramente elaborato con le sessioni, è consigliabile utilizzare solo sessioni di cookie. Dico questo perché il 99% delle volte le persone usano le sessioni per memorizzare un ID utente. Le sessioni funzionano associando un ID di sessione all'interno di un cookie a un ID in quel database. Quindi, se lo usi per un ID utente, in realtà stai memorizzando un ID (sessione) all'interno di un cookie per abbinarlo a un ID (sessione) nel database per restituire un ID (utente).Mentre si può semplicemente memorizzare l'ID utente all'interno del cookie subito. – Pickels

+9

Se hai memorizzato un id utente nel cookie, l'utente sarebbe in grado di falsificare tale id e impersonare un altro utente. Le sessioni sono più sicure e gli archivi di sessione supportati da database assicurano che l'applicazione funzioni su load balancer. – Abadaba

+0

@Abadaba È qui che l'offuscamento/crittografia è utile. Non dovresti mai produrre valori reali, identificativi del modello dal tuo DB al Cliente in relazione alle informazioni sull'account/utente. – creatovisguru

risposta

24

connect-mongo (https://github.com/kcbanner/connect-mongo) sembra migliore degli altri.

Express-session-mongo e collegare-session-mongo sono molto vecchio e basato sulla vecchia versione di mongodb driver.

mango di sessione basato su mongoose, quello più lento del driver mongodb.

Penso che connect-mongo è la scelta migliore.

+2

Ho avuto la stessa sensazione, grazie per la tua risposta – Crisboot

Problemi correlati