- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个运行 Node.JS 版本 10.4.2 的 Redis 服务器。我在我的应用程序中使用 NPM“redis”客户端。我正在使用以下代码创建 Redis 客户端并进行身份验证。 (注意下面注释掉的代码,看看我还尝试了什么):
var redis = require("redis");
// var redisClient = require('redis').createClient(process.env.REDIS_URL || redis);
var redisClient = redis.createClient(
{
port: process.env.REDIS_PORT,
host: process.env.REDIS_URL,
no_ready_check: true,
auth_pass: process.env.REDIS_AUTH
});
/*
// Authenticate with Redis.
redisClient.auth(process.env.REDIS_AUTH, function(err, reply) {
if (err) {
console.error(err);
}
else {
console.log(reply);
}
});
*/
但是,我总是收到以下错误:
ReplyError: ERR invalid password
当我使用被注释掉的代码时,我在 createClient() 期间没有使用“no_ready_check”属性。一些事实:
我对 process.env.REDIS_AUTH 中的值进行了三重检查,它与我的 Redis 服务器配置文件中的 requirepass 密码值完全匹配。
在使用 Redis 命令行客户端 (redis-cli) 进行测试时,我可以使用密码成功进行身份验证,因此我知道 Redis 服务器受密码保护并且密码有效。
我知道密码正在通过,因为当我使用被注释掉的代码时,我可以在传递给回调函数的参数中看到正确的密码。
为什么我的密码不能与我的 Node.JS 代码一起使用,我该如何解决这个问题?请注意,密码是使用 Linux 上的 SSL 随 secret 码生成器生成的。我提到它以防它影响任何事情。
更新:我通过在 Redis 服务器 conf 文件中使用更短的密码来实现此目的。显然,Node.JS Redis 包不喜欢 Linux SSL 实用程序生成的长随 secret 码,尽管这些密码中根本没有奇怪的字符。我在这里的包 repo 上发布了关于这个主题的问题:
最佳答案
我使用以下命令在我的 Linux 机器上使用 OpenSSL 创建密码:
openssl rand 60 | openssl base64 -A
不幸的是,openssl
创建的密码中包含正斜杠 "/"。在这种情况下可能还有其他不健康的角色,但我没有对它们进行详尽的测试。一旦我从密码中删除正斜杠,并在我重新启动 Redis 服务器以注册更改后,客户端创建尝试就可以从 Node.JS 开始工作。
在前往 Redis 的过程中,Node.JS 端发生了一些变化。正如我所说,在使用 auth
命令时将包含密码的完全相同的正斜杠直接粘贴到 Redis 客户端时,我没有遇到任何问题。但是从 Node.JS 使用它们会导致身份验证尝试失败。
我对阅读这篇文章的人最好的建议是,如果您正在使用 openssl 命令为您的 Node.JS 应用程序生成 redis 密码,请删除所有不严格为 'a-zA- 的字符Z' 来自生成的密码。也许稍后会有人给出更好的解决方案作为回复。
关于node.js - 使用 Node.JS createClient() 方法时,与 Redis 客户端一起使用的相同 Redis 密码失败了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54558676/
我是 TS 新手,但一直在使用 TS 编写一些小型服务。我正在开发基于 node-redis 构建的 CLI 工具.很棒的 Redis 客户端。 以下代码段中客户端的类型是什么? import { c
好的,我的代码的工作原理是,index.js 文件中的不和谐机器人存储了用户名和密码。当我向minecraft文件发出请求时,使用minecraft协议(protocol)创建一个名为Client的服
我有一个函数想要进行 x 单元测试,但似乎我必须模拟 CreateClient 函数?每当我在测试期间调试它时,var client 似乎等于 null。我正在正确地注入(inject)依赖项,我确信
我已经使用 npm intall mysql 安装了 mysql我正在测试以下代码,它给出了一个错误 TypeError : Object # has no method 'createClient'
正如标题所示,我有一些代码调用 IHttpClientFactory.CreateClient()创建一个 HttpClient 实例。 我在 .Net Core 3.1 中这样做 我需要 mock
昨天下午我正在运行我的Flutter应用程序,并且运行良好 但是昨天晚上,我尝试运行该应用程序,但是构建失败,并显示错误消息 错误讯息 /C:/flutter-SDK/flutter_windows_
我正在尝试使用 java 代码连接到 SAP 服务器,该代码是用 eclipse 编写的。我在这里使用这段代码...... JCO.Client mConnection; /*getting
谁能解决这个问题?我是 node.js 和 redis 初学者。 函数 createClient() 可以接受 2 个参数:端口和主机。但我仍然被这个问题所困扰。 var client = redis
我正在使用 redis 在 socket.io 客户端之间发布和订阅消息,当客户端连接到服务器时 (io.sockets.on('connection', function(socket){...})
我有一些使用redis内存存储的谷歌云功能,它给了我这个Redis连接:6379失败 - 在TCP上读取ECONNRESET。每次部署任何函数时都会出现 onread 错误。之前我通过创建一个单独的
Gremlin.createClient() 在版本 2.6.0 中工作,但在版本 3.3.4 中不起作用,我知道它从 3.3.4 开始已弃用。我想连接到服务器并执行查询。下面的代码是在2.6版本中执
正如标题所说,我正在使用 Symfony 5 构建一个 API。我有一些 Controller 需要不同的用户权限,我想测试它们,所以我决定创建两个具有不同角色的用户用于测试目的 - ROLE_USE
本文整理了Java中com.twitter.common.zookeeper.testing.ZooKeeperTestServer.createClient()方法的一些代码示例,展示了ZooKee
我是 React 原生框架的新手。我使用“create-react-native-app AwesomeProject”创建了应用程序。我想在我的项目中使用 BLE,所以我安装了“react-nati
有没有类似的东西 remote_client.close() 或 request.close() 用于关闭 http.createClient 连接? 似乎在某些情况下,在发出“response”事件
Symfony 5.0.5 和 5.0.8 之间的某个地方是异常(exception) LogicException: Booting the kernel before calling "Symfo
之前这是使用 Node.js 创建数据库的代码: var client = http.createClient(5984, "127.0.0.1") var request = client.requ
有一个帖子:How do I set a timeout for client http connections in node.js 但没有一个答案会奏效。 所以,我有这样的代码: var
由于某种原因,我无法将代码上传到 azure 函数。几天前我尝试时它可以工作。 现在我收到以下错误。这是错误的屏幕截图。 4:27:59 PM: Error: Cannot read properti
由于某种原因,我无法将代码上传到 azure 函数。几天前我尝试时它可以工作。 现在我收到以下错误。这是错误的屏幕截图。 4:27:59 PM: Error: Cannot read properti
我是一名优秀的程序员,十分优秀!