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

Leo*_* Ge 15 javascript backend node.js passport.js

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

注册:

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

登录:

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

可在此处找到有关我上述过程的视频.

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

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

Jas*_*ing 20

对我来说这是不必要的。

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

而且我没有看到任何安全强制措施,因为我正在编写自己的验证回调。

所以,我看不出我应该使用它的任何理由。

  • 如果你只是使用本地策略,是的,没有意义。但是,当您需要使用 google、fb、twitter、本地以及其他一些网站登录进行身份验证时,最终会为之前已完成多次的任务编写大量代码。这就是护照的目的。 (7认同)

jem*_*oii 9

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