Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用passport.js';s passport local或其他Node.js工具是否可以使用与完整CRUD等效的工具?_Javascript_Node.js_Authentication_Passport.js_Passport Local - Fatal编程技术网

Javascript 如何使用passport.js';s passport local或其他Node.js工具是否可以使用与完整CRUD等效的工具?

Javascript 如何使用passport.js';s passport local或其他Node.js工具是否可以使用与完整CRUD等效的工具?,javascript,node.js,authentication,passport.js,passport-local,Javascript,Node.js,Authentication,Passport.js,Passport Local,我查看了passport.js中的文档,passport本地策略似乎明显不完整 如果你有一个拥有任何形式密码的用户群,那么从文档中可以清楚地看到,如何让人们尝试登录,获得有用的失败消息(从可用性的角度来看,很好地告知哪个用户名或密码不匹配),如果他们提供了有效的凭据,登录 但是,围绕用户名密码身份验证有一组基本功能。人们通常希望能够创建自己的帐户;此外,如果他们忘记了密码,他们应该能够请求“重置密码”链接,并且能够在没有明文密码的情况下登录。所有这些都有点繁琐,但它是一个需要覆盖的基础,就像各种

我查看了passport.js中的文档,passport本地策略似乎明显不完整

如果你有一个拥有任何形式密码的用户群,那么从文档中可以清楚地看到,如何让人们尝试登录,获得有用的失败消息(从可用性的角度来看,很好地告知哪个用户名或密码不匹配),如果他们提供了有效的凭据,登录

但是,围绕用户名密码身份验证有一组基本功能。人们通常希望能够创建自己的帐户;此外,如果他们忘记了密码,他们应该能够请求“重置密码”链接,并且能够在没有明文密码的情况下登录。所有这些都有点繁琐,但它是一个需要覆盖的基础,就像各种应用程序需要覆盖CRUD一样

我读过的关于passport local的文档没有讨论这一点,我所寻找的似乎是Mongoose手动重新发明用户名密码身份验证的准CRUD端的一种方法。我不知道这是否是护照或当地文件的限制

如果我想为一个公众网站提供常规功能,人们可以为自己创建帐户,并且我已经在使用Express.js和(协商)Passport.js,那么我有什么选择


谢谢,

如果你正在寻找一个完整的CRUD用户管理系统,你真的无法打败类似的东西

使用他们的express.js库可以立即为您提供一个完整的CRUD系统(带有Node/express/Restify/Loopback/Python/Django/Flask等)库,用于管理/使用用户

以下是他们的express.js库文档:

基本上,他们所做的是:

  • 它们将存储您的用户帐户
  • 您可以使用他们的中间件创建/登录/管理用户
  • 您可以使用他们的中间件通过登录、组、API身份验证等来限制页面
  • 您可以使用它们的库来搜索/排序/创建/更新/删除用户/API密钥/应用程序/组
它的功能非常完整,并且有很好的文档记录


我是上述库的作者,所以我有点偏颇,但它确实非常有用=)

不过,从安全角度来看,最好不要公开导致失败的登录凭据的哪一部分。我知道从安全角度看更好,而且安全性和可用性可能会出现矛盾:要么不必担心,另一个会被扔掉。但在这种情况下,我会选择可用性。你看过吗?免责声明:我在那里工作。我们已经实施了注册(您必须验证您的电子邮件)和密码重置(我们向您发送带有令牌的链接)的最佳实践,这些都可以通过我们的模块轻松获得;谢谢你能重复你的评论作为回应吗,这样我就可以选择接受它了?一个关于密钥的评论:在LUM系统上,你可以很容易地从/dev/random生成1024字节,十六进制编码的密钥。在秘密管理方面,您可能会默认使用/dev/random中的编码字节,并允许用户重写,而不是要求用户指定密钥。感谢您的参与。我目前的困难是,我认为如果未经验证的用户应该登录,我需要做的是提供JWT并重定向到Stormpath。我的识别码是lizard mint,我在文档中没有看到这个。如何将用户重定向到Stormpath登录页面?您可以使用路由上的
Stormpath.loginRequired
中间件强制自动执行此操作=)