Node.js用户系统

时间:2013-06-25 16:12:43

标签: node.js authentication

我目前正在开发一个处理多个用户的网络应用程序。虽然它目前有效,但它依赖于一些真正的不良做法,我将在一分钟内概述。

我们使用MySQL作为数据库系统,因为我们正在更新当前的应用程序,我们希望确保一切都向后兼容。否则我会看看MongoDB等。

我们的用户存储在一个名为login的表中。这包含其用户名,电子邮件,哈希密码等包含其首选项的JSON编码对象的字段。使用 meta 表没有真正的理由这样做。

所以不好的做法:

  • 我们在cookie中存储整个用户登录行,不包括他们的密码(尽管这是一个内部应用程序)。它是JSON编码的。
  • 用户登录后,我们有一个安全的HTTP cookie,只能通过Node.js读取其用户名和密码,以便我们可以继续让用户自动登录。
  • 我们有app.get('*')路由,可以不断确保用户拥有三个Cookie并使用新的首选项更新其acc Cookie。这意味着每次用户切换页面或访问新的AJAX项目(都在相同的路径下)时,他们都会有一个更新的cookie。
  • 每次用户执行操作时,我们都会执行此操作以获取用户ID:JSON.parse(res.cookies.acc).agent_id yuck!

现在,每个用户都能够对页面上的某些元素执行操作,这会影响每个人,因为应用程序是内部的,任何人都可以处理其中的数据。

我知道我想要实现什么以及如何在PHP中完成它,但我无法找到Node.js中最有效的方法。

我已经开始创建一个用户模块,该模块允许我们让执行操作的用户整齐地更新他们的偏好等。您可以看到这个here时要记住这是一个WIP。我对该模块的问题是它无法访问用户cookie,因为它不是“Express”的一部分。这解释了最后的不良做法。

处理这样一个系统并保持糟糕的做法免费的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

我怀疑它符合您的所有要求,但值得查看Drywall; Node.js的网站和用户系统

希望它(或部分内容)对您有所帮助。

http://jedireza.github.io/drywall/