gpt4 book ai didi

node.js - Passport 本地策略身份验证似乎仅适用于具有共享 MongoDB 实例的本地主机

转载 作者:太空宇宙 更新时间:2023-11-04 02:19:43 24 4
gpt4 key购买 nike

这很奇怪,但我不确定还会发生什么。我已成功部署 passport-local用户帐户存储在 MongoDB 中的 Node.js Express 应用程序的策略。我通过 MongoLab 使用 Mongo 作为服务。

我的帐户和登录身份验证在本地按预期工作。但是,当我将应用程序部署到 AWS(仍然使用相同的 Mongo 服务)时,相同的帐户凭据会失败。我想知道... Passport 是否以某种方式使用 URL、端口或其他特定于环境的信息来验证用户身份?也许密码查找是如何执行的?

我已将范围缩小到 passport.authenticate('local') 中间件,尽管如果这个库在不同环境中使用完全相同的代码以某种方式表现不同,我会感到惊讶。

我还应该提到,我正在为我的用户模型使用 passport-local-mongoose 插件。

最佳答案

好的 - 我明白了。

在我的本地系统上,我有一个较新版本的 Node ,但在我部署的版本(在 AWS ElasticBeanstalk 上)上它使用的是 v0.10.36。

如果您查看 passport-local-mongoose 的代码,您会看到以下内容:

var pbkdf2DigestSupport = semver.gte(process.version, '0.12.0');
...
var pbkdf2 = function(password, salt, callback) {
if (pbkdf2DigestSupport) {
crypto.pbkdf2(password, salt, options.iterations, options.keylen, options.digestAlgorithm, callback);
} else {
crypto.pbkdf2(password, salt, options.iterations, options.keylen, callback);
}
};

因此,如果 Node 的两个不同版本的一个版本高于 0.12.0,另一个版本低于 0.12.0,您将获得不同的加密功能。

关于node.js - Passport 本地策略身份验证似乎仅适用于具有共享 MongoDB 实例的本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com