node.js的用户身份验证库?

是否有针对node.js的现有用户身份验证库?特别是,我正在寻找可以对用户进行密码身份验证(使用自定义后端身份验证数据库)并将该用户与会话相关联的东西。

在编写身份验证库之前,我认为我会看看人们是否知道现有的库。通过Google搜索找不到任何明显的内容。

-Shreyas

Stafan路易2020/03/19 12:38:39

如果您需要使用Microsoft Windows用户帐户通过SSO(单点登录)进行身份验证。您可以尝试https://github.com/jlguenego/node-expose-sspi

它将为您提供一个req.sso对象,其中包含所有客户端用户信息(登录,显示名称,sid,组)。

const express = require("express");
const { sso, sspi } = require("node-expose-sspi");

sso.config.debug = false;

const app = express();

app.use(sso.auth());

app.use((req, res, next) => {
  res.json({
    sso: req.sso
  });
});

app.listen(3000, () => console.log("Server started on port 3000"));

免责声明:我是node-expose-sspi的作者。

Davaid泡芙2020/03/19 12:38:39

这是使用时间戳记令牌的新身份验证库。令牌可以通过电子邮件发送或发送给用户,而无需将其存储在数据库中。它可以用于无密码身份验证或两因素身份验证。

https://github.com/vote539/easy-no-password

披露:我是该库的开发人员。

路易斯丁神奇2020/03/19 12:38:39

有一个名为Drywall的项目该项目使用Passport实现用户登录系统,并且还具有用户管理管理面板。如果您正在寻找一个功能全面的用户身份验证和管理系统,类似于Django所具有的功能,但Node.js就是这样。我发现这是构建需要用户身份验证和管理系统的节点应用程序的一个很好的起点。有关Passport如何工作的信息,请参见Jared Hanson的答案

西门樱前端2020/03/19 12:38:38

身份验证的另一种方式是无密码,这是一种基于令牌的用于快速表达的身份验证模块,它规避了密码的固有问题[1]。它实现起来很快,不需要太多形式,并且为普通用户提供了更好的安全性(完整披露:我是作者)。

[1]:密码已过时

Sam梅2020/03/19 12:38:38

以下是两个流行的Github库,用于进行节点js身份验证:

https://github.com/jaredhanson/passport(建议)

https://nodejsmodules.org/pkg/everyauth

村村L2020/03/19 12:38:38

如果您想要第三方/社交网络登录集成,请同时查看everyauth

猿Near2020/03/19 12:38:38

看起来连接中间件的connect-auth插件正是我所需要的:http : //wiki.github.com/ciaranj/connect-auth/creating-a-form-b​​ased-strategy

我使用的是express [ http://expressjs.com ],因此connect插件非常适合,因为express是connect的子类(可以-原型化)