【发布时间】:2018-01-07 17:55:54
【问题描述】:
我不熟悉 Node.js 中的用户身份验证,现在我正在尝试创建一个带有登录系统的网站。我已经设法使用网站上的代码 sn-ps 使其工作,但我真的不明白为什么我们需要 passport.js 作为中间件来进行身份验证。
注册:
我们以passport-local为例,我们在使用passport中间件的时候,基本上是想在数据库中新建一个文档,那我们可以不用passport就行,比如直接使用MongoClient,具有重复检查,并在加密后存储密码。
登录:
我们可以简单地根据我们的数据库检查用户的电子邮件或用户名,然后在电子邮件或用户名匹配后检查密码。这也可以在没有护照的情况下完成。确认用户身份后,我们可以使用express-session 将会话存储在 cookie 中以实现登录持久性。
可以在here找到有关我上述过程的视频。
我知道肯定有一些非常重要的功能我忽略了,但是在浏览了很多网络资源后,包括 stackoverflow、youtube、passport.js 的文档等等,我仍然不明白 passport.js 是做什么的和为什么我们需要它。
如果问题看起来很愚蠢,请提前道歉。
【问题讨论】:
-
我猜这将属于“没有人再编写自己的代码”和“一切都由别人的库和框架完成”的类别。或者可能,“没有人知道如何编码了”,但对于可能有事实基础的固执己见的评论,我深表歉意。
-
我们不需要任何东西。是的,您可以自己轻松完成所有这些操作。是的,我们不需要使用库。但显然有些人发现 passport.js 有用,他们不必自己做更少的事情,而不是重新发明轮子,同时很好地融入中间件抽象。
-
通常存在这样看似毫无意义的库只是因为它更容易。以js-cookie 为例;无论如何,这都不是必要的。也很容易找到自己处理 cookie 的信息。但是以别人的工作为基础要容易得多。为什么要重新发明轮子?
标签: javascript node.js passport.js backend