【问题标题】:Ready check failed: NOAUTH Authentication required就绪检查失败:需要 NOAUTH 身份验证
【发布时间】:2016-03-15 11:59:55
【问题描述】:

当我尝试使用 adapter: 'redis' 时,它告诉我安装 socket.io-redis 0.14 版。我这样做了,并将所有信息输入到 session.js 文件中:

module.exports.session = {
   adapter: 'socket.io-redis'
   host: '10...',
   port: 6379,
   db: 'sails',
   pass: '...',
};

现在当我尝试运行应用程序时,我收到以下错误:

Error: Ready check failed: NOAUTH Authentication required.

我不知道为什么pass: .。不管用?还有什么我应该做的吗?

注意:我使用 Google 计算实例进行 redis 托管,我有一个允许访问的防火墙规则。

【问题讨论】:

  • 也许您需要删除 pass arg?
  • @alexey 我试过了,但没有改变任何东西,仍然有同样的错误。
  • 你可以尝试添加这个auth: process.env.redis_auth || null 吗?
  • @cfl 你找到解决方案了吗?
  • @Garrett 不幸的是我没有解决这个问题,抱歉。如果您这样做,请告诉我们。

标签: node.js redis sails.js


【解决方案1】:

我确实找到了解决问题的方法。我不确定它对你有多大用处,因为我相信我的情况有点不同。我在 bitnami Google 云计算实例上使用sails.js,并且我还在一个单独的bitnami 实例上托管redis,这是我们共同的。但是,我正在尝试连接到 Redis 以使用 Kue。所以我没有使用我的配置/会话文件。我们仍然遇到同样的错误,所以解决方案是删除 redis 实例中的 requiredpass,然后使用防火墙规则,只允许我的服务器访问 Redis 实例。

我认为根本问题是 redis 有第二个密码提示,用于任何尝试读/写数据存储。因此,从服务器传递密码只会让您登录,但不会让您访问数据,因此会出现 NOAUTH 错误。所以我相信该实例的requiredpass 主要用于客户端,而服务器端实例不需要它。这可能是我对如何使用 Redis 很天真,但我不知道如何从不同的服务器输入密码到提示符。我觉得防火墙规则现在对我来说很好,可以阻止不需要的流量。

如果这是您想要做/尝试的,那么我为 Google 云执行此操作的方式是通过 ssh 进入 Redis 实例(通过您自己的命令行或通过 Google 提供的浏览器。然后编辑 /opt/bitnami/redis/etc/redis.conf具有 sudo 权限的文件。找到写有 requiredpass 的行并通过在其前面放置 # 来注释掉它。现在要使其生效,您必须重新启动服务器。 Bitnami 说你可以用sudo /opt/bitnami/ctlscript.sh restart redis 来做到这一点。但是,我收到了一个 AUTH 错误。所以为了解决这个问题,我不得不用sudo pkill -9 -f redis-server强制终止进程,然后用sudo /opt/bitnami/ctlscript.sh restart redis重新启动它。这应该会刷新配置文件、更新实例并允许您的服务器连接而无需输入第二个提示密码。

如果您有任何问题,请告诉我,我会尽力提供帮助。

【讨论】:

    【解决方案2】:

    你必须指定auth_pass:

       module.exports.session = {
       adapter: 'socket.io-redis'
       host: '10...',
       port: 6379,
       db: 'sails',
       pass: '...',
       auth_pass: redis_url.auth.split(":")[1]
    };
    

    更新

    来自documentation

    密码:空;如果设置,客户端将在连接时运行 redis auth 命令。 Alias auth_pass (node_redis

    【讨论】:

    • 不知道该怎么做,我试过的不起作用。我创建 var redis_url = require('socket.io-redis');在顶部,然后尝试像您提到的那样调用它。但得到错误:无法调用未定义的方法“拆分”。 [1] 应该是什么值?
    • 在 Google 计算引擎上创建 redis 服务器并没有提供要使用的 url,就像其他平台似乎做的那样。感谢您的努力
    • 你可以使用ip地址
    猜你喜欢
    • 2018-01-22
    • 2017-07-13
    • 1970-01-01
    • 2017-07-17
    • 2017-02-18
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多