2016-07-02 2 views
0

Je regarde une application d'authentification en utilisant des messages express et flash en utilisant le middleware 'connect-flash'.Pourquoi les messages flash sont-ils stockés dans une session dans nodejs auth?

pour se connecter selon flash:

Le flash est une zone spéciale de la session utilisée pour le stockage des messages. Les messages sont écrits dans le flash et effacés après leur affichage à l'utilisateur. Le flash est généralement utilisé en combinaison avec les redirections, ce qui garantit que le message est disponible pour la page suivante qui doit être rendue. Les messages Flash sont stockés dans la session. Tout d'abord, configurez les sessions comme d'habitude en activant le middleware cookieParser et de session. Ensuite, utilisez le middleware flash fourni par connect-flash.

Pourquoi le message flash est-il stocké dans la session? cela n'augmenterait-il pas la taille du cookie et ne serait pas mauvais car trop d'espace mémoire pourrait être utilisé?

Répondre

2

Pourquoi le message flash est-il stocké dans la session?

Parce que connect-flash a besoin d'un moyen de propager les messages flash entre demandes et le stockage de session est une méthode utile de le faire.

Cela n'augmenterait-il pas la taille du cookie?

Généralement, non. Un cookie de session contient une seule information, l'identifiant de session. En utilisant cet ID, la session données est recherchée à partir de la session de stockage , qui est généralement une base de données de quelques sortes. La taille des cookies reste donc la même quelle que soit la quantité de données stockée dans la session. Toutefois, le stockage de session va augmenter la taille de, mais ce n'est généralement pas un gros problème. Une exception notable à la déclaration ci-dessus est si vous utilisez quelque chose comme cookie-session, qui stocke toutes les données de session dans le cookie lui-même (par conséquent, ne nécessitant pas de stockage de session distinct à mettre en place).

+0

Merci, j'ai vu des moteurs de template peupler un message donné par le serveur tel que jade ou ejs. Par exemple "nom d'utilisateur/mot de passe invalide". Ils ne sont cependant pas stockés dans la session mais sont affichés sur le frontal après une requête http. Pourquoi cela serait-il? – jdogdvr

+0

@jdogdvr peut-être que la route de connexion gère elle-même de tels échecs, donc elle transmet simplement une variable "login failed" au template, qui affiche le message approprié. – robertklep