简述
hubot-slack-authenticator 是一个 npm 包,它允许给一个 Slack 机器人添加用户认证功能。通过它,你可以指定那些 Slack 用户具有机器人的可访问性,也可以控制他们在机器人里的角色/权限等。
本文将详细介绍如何使用 hubot-slack-authenticator 包,帮助你使你的 Slack 机器人更安全!
安装
使用 npm 命令安装 hubot-slack-authenticator:
npm install --save hubot-slack-authenticator
配置
在你的机器人脚本中使用下列代码配置
-- -------------------- ---- ------- --- ------------------ - ------------------------------------- -------------- - --------------- - -- --- --- --------- - --- ------------------------- - - ----- ----------------- ----- ------- -- - ----- ----------------- ----- --------- -- - ----- ----------------- ----- ----------- - --- -- --- -
参考上面的例子,你需要指定一个包括用户的数组,每个用户里的元素是用于替换 USER
的 Slack 用户名和用于替换 ROLE
的角色。比如上面的例子中,slackusername1 被赋为 admin
权限,可以做任何事情,slackusername2 被赋为 support
权限,可以做有限的事情,而 slackusername3 被赋为 read-only
权限,只能读数据。
参考配置文件结构
[ { USER: 'slackusername1', ROLE: 'admin' }, { USER: 'slackusername2', ROLE: 'support' }, { USER: 'slackusername3', ROLE: 'read-only' } ]
参考配置文件结构解释
USER
:在字符串中代表 Slack 用户名,实际使用时将被替换。ROLE
:在字符串中代表角色名称,实际使用时将被替换。
使用
要使用 hubot-slack-authenticator 包,你可以编写响应事件的自定义函数,然后使用 slackAuth.onlyFor
来指定该自定义函数需要哪些用户权限:
robot.respond(/something\s+please/i, function(msg) { /* your event handling code */ }).onlyFor('admin');
示例代码
完整的例子可以参考:
-- -------------------- ---- ------- --- ------------------ - ------------------------------------- -------------- - --------------- - -- --- --- --------- - --- ------------------------- - - ----- ----------------- ----- ------- -- - ----- ----------------- ----- --------- -- - ----- ----------------- ----- ----------- - --- ------------------------------------ ------------- - -- ---- ----- -------- ---- -- -------------------- ---------------------------------- ------------- - -- ---- ----- -------- ---- -- -------------------- ------------ --------------------------------- ------------- - -- ---- ----- -------- ---- -- ------------------------ -- --- -
结论
hubot-slack-authenticator 是一个强大的工具,可以帮助你更好的管理 Slack 机器人的权限和安全。在本文中,我们详细介绍了该 npm 包的安装、配置和使用方法,并提供了一个详细的例子,帮助你快速上手。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067354890c4f72775839fe