如何使用 Node.js、Express 和 Mongoose 进行身份验证?

Posted

技术标签:

【中文标题】如何使用 Node.js、Express 和 Mongoose 进行身份验证?【英文标题】:How to do authentication with Node.js, Express and Mongoose? 【发布时间】:2012-01-13 22:34:51 【问题描述】:

我使用 nodejs+express 制作了简单的 nodejs 应用程序。现在我想做用户认证。我想通过使用猫鼬来实现会话处理。 你能举个例子吗?

【问题讨论】:

【参考方案1】:

一些有用的链接:

how to implement login auth in node.js

creating registration and login form in node.js and mongodb

另外,会话管理不是由 Mongoose 完成的,而是由 connect-mongodb 或 connect-redis 完成的。您可以在此处查看有关如何在实际应用程序中进行用户身份验证和会话管理的示例:

https://github.com/alexyoung/nodepad/blob/master/app.js

您可以在此处找到该应用的更多说明:http://dailyjs.com/tag/lmawa 或 http://dailyjs.com/2010/12/06/node-tutorial-5/

【讨论】:

【参考方案2】:

只需使用 mongoose-auth by Brian Noguchi https://github.com/bnoguchi/mongoose-auth

这是您的问题的一个解决方案,它有据可查且可扩展。

编辑

mongoose-auth 不再维护。如果您需要使其与更新版本的 mongoose (ie > v3.xx) 和 express (ie. > v3.xx) 一起使用,这是我目前在生产中使用的 package.json 文件的摘录(这很hacky但它有效):

"everyauth": "https://github.com/bnoguchi/everyauth/tarball/express3",
"mongoose-3x-types": "~1.0.5",
"mongoose-auth": "https://github.com/cbou/mongoose-auth/tarball/everymodule-fix",

你正在开始一个新项目不要使用mongoose-auth,而是尝试passport。它提供相同的功能,非常灵活,但是它有不同的 api。它是locomotive MVC 框架的一部分,因此得到积极维护。

【讨论】:

刚放下梳子就看到了。 Mongoose-auth 很棒,但它并没有永远更新,而且它有很多不推荐使用的代码。 非常正确,该项目似乎不再维护。 AFAIK,现在使用的事实上的库是passport Can't get passport to work with express v3... 是否兼容 :O :(【参考方案3】:

我在这里发布了一个使用 mongoose + expressjs 的完整身份验证系统的完整示例,如果你想看看:

Simple login page in nodejs using express and passport with mongodb

【讨论】:

以上是关于如何使用 Node.js、Express 和 Mongoose 进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Express 和 Node.js 从表单发送参数

node.js 和 express:如何等待 udp 响应

如何使用 node.js/express 中止请求?

如何使用 Express JS/Railway JS (Node.JS) 生成 JSON

会话如何在 Express.js 和 Node.js 中工作?

如何使用在 node.js 上的方法和 express 来获取更新信息