我对如何在桥中使用auth有疑问。 Here我们可以看到下一个:
window.onload = function(){
function fullpay(){
var cartbutton = document.getElementById("cartbutton");
cartbutton.innerHTML = "<a href='/?add-to-cart=66' rel='nofollow' data-product_id='66' data-product_sku='' class='button add_to_cart_button'>Add to cart</a>";
}
function payments(){
var cartbutton = document.getElementById("cartbutton");
cartbutton.innerHTML = "<a href='/?add-to-cart=69' rel='nofollow' data-product_id='69' data-product_sku='' class='button add_to_cart_button'>Add to cart</a>";
}
};
在这个例子中,我可以访问ctx并检查auth但是,如何从客户端包含auth?在我的客户端,我使用用户登录环回并获取accessToken,但我不知道如何验证客户端是否在通道中发布。
感谢!
答案 0 :(得分:1)
Hook允许您在执行操作之前运行任意函数(例如,发布,订阅)。例如,此代码显示如何在将客户端消息发布到代理之前添加授权。该方法也可以与其他动作一起使用(例如,订阅)。有关更多详细信息,请查看Pubsub here
上的博客文章// On the server...
// supported actions: connect, publish, and subscribe
bridge.before('publish', function(client, next) {
var user = parseCredentials(client.credentials).user;
canUserPublishToTopic(user, client.topic, function(err) {
if(err) {
// Not authorized, the action will be denied
next(err); // Express-style error handling
} else {
next(); // the action will continue
}
});
});
// On the client...
client.publish('hello world');
答案 1 :(得分:0)
我刚想通了
您可以通过此类客户端选项传递您的用户凭据
var client = new Client({port: 3002, host: 'localhost', mqtt: {
username: 'abc',
password: 'abc'
}}, Adapter, transport)