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

51

我使用Node.js和Express创建了一个简单的应用程序。现在我想要实现用户认证,并希望通过使用Mongoose来实现会话处理。你能给出一些示例吗?

3个回答

48

一些有用的链接:

如何在node.js中实现登录认证

在node.js和mongodb中创建注册和登录表单

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

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

有关该应用程序的进一步解释,请参见以下链接:http://dailyjs.com/tag/lmawahttp://dailyjs.com/2010/12/06/node-tutorial-5/


14

只需使用Brian Noguchi的mongoose-auth https://github.com/bnoguchi/mongoose-auth即可解决您的问题,它有良好的文档和可扩展性。

编辑

mongoose-auth不再维护。如果您需要将其与最新版本的mongoose(即> v3.x.x)和express(即> v3.x.x)一起使用,则以下是我目前在生产中使用的package.json 文件的摘录(它很糟糕,但可行):

"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框架的一部分,因此它得到了积极维护。


刚在 SO 上看到这个。Mongoose-auth 真是太棒了,但它已经很久没有更新了,而且现在有很多过时的代码。 - Scott Sword
3
非常正确,看起来这个项目已经不再维护了。据我所知,现在使用的事实上的库是 passport - alexandru.topliceanu
无法让 Passport 与 Express v3 协同工作... 它们是否兼容 :O :( - Jamie Hutber

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接