我的一个项目需要对RabbitMQ进行身份验证。只有经过身份验证的用户才能连接到rabbitmq服务器并订阅队列等。例如,当用户第一次连接服务器并发送一些身份验证数据(如登录名、密码)时,服务器应该对其进行检查,如果用户通过了身份验证,他将能够订阅队列等。否则,服务器将断开用户的连接。是否有解决方案?请不要太苛刻地评价我,我不太熟悉RabbitMQ和这方面的东西。
这很容易自己找到。只需简单地在Google上搜索“RabbitMQ身份验证”,第一项结果此页面:
当AMQP客户端建立与AMQP服务器的连接时,它指定了一个要操作的虚拟主机。此时对访问控制进行第一级别的强制,服务器检查用户是否有访问虚拟主机的权限,否则将拒绝连接尝试。
这个 amqplib文档给出了一个简单的答案。
Connecting with an object instead of a URL
The URL can also be supplied as an object of the form:
{
protocol: 'amqp',
hostname: 'localhost',
port: 5672,
username: 'guest',
password: 'guest',
locale: 'en_US',
frameMax: 0,
heartbeat: 0,
vhost: '/',
}