passport.js做什么以及为什么需要它?

时间:2017-08-01 02:41:05

标签: javascript node.js passport.js backend

我不熟悉Node.js中的用户身份验证,现在我正在尝试使用登录系统创建一个网站。我已经设法使用网站上的代码片段使其工作,但我真的不明白为什么我们需要passport.js作为中间件来进行身份验证。

注册:

让我们以护照本地为例,当我们使用护照中间件时,我们基本上是试图在数据库中创建一个新文件,然后我们可以在没有护照的情况下进行,例如使用MongoClient直接,检查重复项,并在加密后存储密码。

登录:

我们可以根据我们的数据库检查用户的电子邮件或用户名,然后在匹配电子邮件或用户名后检查密码。这也可以在没有护照的情况下完成。确认用户身份后,我们可以使用express-session将会话存储在cookie中以进行登录持久性。

可以找到关于我上述过程的视频here

我知道必须有一些我忽略的非常重要的功能,但在浏览了许多网络资源后,包括stackoverflow,youtube,passport.js的文档和许多其他人,我仍然不明白passport.js做了什么,为什么我们需要它。

如果问题看起来很愚蠢,请提前道歉。

2 个答案:

答案 0 :(得分:3)

Passport是express.js的中间件。它支持各种登录类型,基本,令牌,本地(用户名,密码),OAuth,OAuth2等。我们可以将这些类型组合在一起,以允许用户通过使用Google,FB或任何服务以最少的代码登录进行身份验证。我们还可以使用它来组合外部身份验证服务,以便用户可以选择使用所选策略之一登录,例如谷歌,推特。使用护照进行身份验证比从头开始构建一个快得多。这就是我们使用护照的原因。你不需要护照,它只会使开发更快。从那里阅读更多网站=> http://www.passportjs.org/

答案 1 :(得分:3)

对我来说,这是不必要的。

这并没有节省我任何工作。我必须编写配置,回调和用户架构。对我来说,为它编写一个中间件对我来说更容易。

我看不到有任何安全强制措施,因为无论如何我都在编写自己的验证回调。

因此,我没有看到我应该使用它的任何理由。