是否有任何现有的 node.js 用户身份验证库?特别是,我正在寻找可以为用户进行密码身份验证的东西(使用自定义后端身份验证数据库),并将该用户与 session 相关联。
在我编写一个 auth 库之前,我想我会看看人们是否知道现有的库。通过谷歌搜索找不到任何明显的东西。
-Shreyas
最佳答案
如果您正在寻找 Connect 或 Express 的身份验证框架,Passport 值得研究:https://github.com/jaredhanson/passport
(披露:我是 Passport 的开发者)
我在调查了 connect-auth 和everyauth 之后开发了 Passport。虽然它们都是很棒的模块,但它们并不适合我的需求。我想要更轻巧且不引人注目的东西。
Passport 被分解为单独的模块,因此您可以选择仅使用您需要的内容(OAuth,仅在必要时使用)。 Passport 也不会在您的应用程序中安装任何路由,让您可以灵活地决定何时何地进行身份验证,并使用 Hook 来控制身份验证成功或失败时发生的情况。
例如,这里是设置基于表单(用户名和密码)身份验证的两步过程:
passport.use(new LocalStrategy(
function(username, password, done) {
// Find the user from your DB (MongoDB, CouchDB, other...)
User.findOne({ username: username, password: password }, function (err, user) {
done(err, user);
});
}
));
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login' }),
function(req, res) {
// Authentication successful. Redirect home.
res.redirect('/');
});
其他策略可用于通过 Facebook、Twitter 等进行身份验证。如有必要,可以插入自定义策略。
关于authentication - node.js 的用户身份验证库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498005/