首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一般用户会话处理(Nodejs)

一般用户会话处理(Nodejs)
EN

Stack Overflow用户
提问于 2013-02-07 23:24:04
回答 1查看 313关注 0票数 0

我用nodejsexpress编写了一个简单的and服务器。我实现了一个使用电子邮件用户名和密码的用户身份验证。此外,我有一个记忆函数,它将用户id和pwd散列存储到cookie中。现在我想要一个额外的会话,当用户关闭他的浏览器或单击注销按钮时结束。

哪种方式是实施的最佳实践?会话是否与具有过期时间的记住函数相同,并且在每个请求中,我必须根据数据库检查凭据?(这一点我不太确定)

我使用的技术:nodejsexpressmongodb

这不仅仅是一个nodejs问题,我更希望对这个问题有一个一般性的解释。

EN

回答 1

Stack Overflow用户

发布于 2013-02-08 03:34:25

让我先说明一下;将密码散列存储到cookie中将允许任何人在拥有密码散列时登录,如果密码散列由于某种原因暴露出来,那将是灾难性的。加密cookies很好,但不要允许将存储在数据库中的实际散列用于身份验证。永远不会。

关于重新身份验证,Node是一种在单线程上运行的技术,并通过在多个处理器和/或机器上运行更多实例来进行扩展。保持会话是避免访问数据库的好主意,但您还必须考虑体系结构。比方说,如果你使用存储在文件中的会话( PHP),并且你需要扩展到多台机器,会发生什么呢?至少没什么好东西。因此,您需要一个中心点来跟踪会话。

这可以是您的数据库(MongoDB)或诸如Redis之类的东西,也可以是允许您检查会话的另一种集中式机制。无论采用哪种方法,您都必须花费时间执行请求并检索客户端的会话值。如果您没有需要存储的附加值,那么创建一个专用的会话体系结构(需要过期等等)是没有意义的,重新执行身份验证是最简单、最符合逻辑的解决方案。

就我个人而言,我几乎不需要会话,只需要再次进行身份验证。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14754699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档