hubot-auth 未进行身份验证

hubot-auth not authenticating

我刚刚安装了 hubot,我正在尝试一些基本测试。

我在 /scripts 中有这个基本脚本:

module.exports = (robot) ->

  robot.respond /myscript status/i, (msg) ->
        if robot.auth.hasRole(msg.envelope.user, 'test')
            msg.reply "Success"
        else
            msg.reply "Sorry. Need 'test' role."

我发出适当的 Slack 命令:

schroeder has test role

"OK, schroeder has the 'test' role."

myscript status

"Sorry. Need 'test' role."

我有:

在重新阅读所有文档并查找错误报告后,我仍然看不出我遗漏了什么。它必须是简单的东西,但我没有想法。几乎好像脚本无法查看存储的角色(hubot-auth 可以,但我的脚本不能)。

尽管在启动时,hubot 说它正在连接到本地 Redis 服务器:

INFO hubot-redis-brain: Using default redis on localhost:6379

它不是...至少不是您所期望的方式。

如果 redis 实际上是 运行,您应该会收到一条额外的消息:

INFO hubot-redis-brain: Data for hubot brain retrieved from Redis

该消息没有出现,并且 没有警告或错误表明 Redis 不是 运行。

如果你没有正确设置 hubot-redis-brain,你会得到奇怪的错误和不一致,比如 hubot-auth 角色检查功能失败。

此外,我发现即使我正确设置了Redis,我的测试脚本也没有运行。尽管我找到的所有教程都测试了 msg.envelope.user,但这对我不起作用。我需要使用 msg.message.user.name 并用大脑解决 class:

module.exports = (robot) ->

  robot.respond /fbctf status/i, (msg) ->
    user = robot.brain.userForName(msg.message.user.name)
    if robot.auth.hasRole(user, 'test')
      msg.reply "Success"
    else
      msg.reply "Sorry. Need 'test' role."