voglio creare un'applicazione Django con un po 'gli utenti registrati. Da un altro lato, dal momento che voglio alcune funzionalità in tempo reale, voglio usare un'applicazione Express.js.Condivisione di un negozio di sessione su Redis di Django e un'applicazione Express.js
Ora, il problema è che io non voglio utenti unauthentified di accedere ai dati dell'applicazione Express.js. Quindi devo condividere un archivio di sessioni tra Express.js e le applicazioni Django.
ho pensato usando Redis sarebbe una buona idea, dal momento che le chiavi volatili sono perfetti per questo in forma, e ho già usare Redis per un'altra parte della domanda.
Nella domanda Express.js, avrei questo tipo di codice:
[...]
this.sessionStore = new RedisStore;
this.use(express.session({
// Private crypting key
secret: 'keyboard cat', // I'm worried about this for session sharing
store: this.sessionStore,
cookie: {
maxAge: 1800000
}
}))
[...]
Sul lato Django, mi piacerebbe pensare di utilizzare l'applicazione django-redis-session.
Quindi, questa è una buona idea? Non ci saranno problemi? Soprattutto per la chiave segreta, non sono sicuro che condivideranno le stesse sessioni.
È necessario scrivere un gestore personalizzato per express o django, per sincronizzare il modo in cui codificano il cookie, come mappano l'identificativo di sessione nel cookie sulla chiave redis e come mappano il valore redis in una sessione . –
Heh, quindi non c'è modo di farlo funzionare fuori dalla scatola? Mi piacerebbe avere l'opinione di qualcuno che ha lavorato con entrambi i sistemi (forse hai, non lo so :)). –
Certo, non devi fidarti di me. Non ho mai lavorato con django-redis-session. Ma ho lavorato molto con Express e Django. Ma non è né qui né là, perché è un fatto che le sessioni Express sono JSON, e le sessioni di Django sono oggetti in Python decapitati. Quindi non funzionerà. Express memorizza le sessioni come 'sess: sessionId', e non è un'ipotesi che django-redis-session usi qualche altro schema per mappare tra le chiavi redis e gli id di sessione. –