0
我與王菲的郵件系統工作,我想補充的認證!我通過網站工作並遵循教程。王菲認證令牌與
在客戶端我有傳出消息的擴展:
var droneFaye = new faye.Client("/faye", {
timeout: 120
});
var USER_TOKEN = 'ifd63cylqwsyaq9c2ptzywjujgtfpxs';
droneFaye.addExtension({
outgoing: function(message, callback) {
if (message.channel !== '/meta/subscribe')
return callback(message);
message.ext = message.ext || {};
message.ext.token = USER_TOKEN;
console.log(message);
callback(message);
}
});
在服務器上:
var token = 'ifd63cylqwsyaq9c2ptzywjujgtfpxs'
var serverAuth = {
incoming: function(message, callback) {
// Let non-subscribe messages through
if (message.channel !== '/meta/subscribe')
return callback(message);
// Get subscribed channel and auth token
var msgToken = message.ext && message.ext.token;
// Find the right token for the channel
if (token !== msgToken) {
message.error = 'Invalid subscription auth token';
}
console.log(message);
callback(message);
}
};
var adapter = new faye.NodeAdapter({
mount:'/faye',
timeout:45
});
adapter.addExtension(serverAuth);
adapter.attach(httpServer);
我有這樣的服務器上的訂閱:
adapter.getClient().subscribe("/drone/move", function(cmd) {});
好的!所以,當我啓動服務器,並沒有客戶端,它已經調用擴展訂閱,它會在控制檯上輸出:
{ channel: '/meta/subscribe',
clientId: '2isdeb0ds77zl0lh82ob1kqu29y1cajnv80',
subscription: '/drone/move',
id: '2',
error: 'Invalid subscription auth token' }
一旦一個客戶端連接到服務器時,它會再次呼叫分機,它會輸出:
{ channel: '/meta/subscribe',
clientId: '3kechs0c7smpc05z5o7d0a8qcd301d8zi41',
subscription: '/drone/move',
id: '3',
ext: { userId: 18787, token: 'ifd63cylqwsyaq9c2ptzywjujgtfpxs' } }
所以這看起來不錯!但是即使他們有正確的令牌,並且沒有錯誤消息,也不會有其他消息到達服務器!
只是爲了信息。如果添加了錯誤密鑰與價值的消息,對象也不會在消息傳遞給它的訂閱...它應該是這樣的!...
而且當我在擴展註釋掉message.error它工作正常,但當然沒有認證。
因此,沒有人知道爲什麼服務器調用,即使沒有客戶端的延伸和第二爲什麼王菲不給消息,即使是在消息對象中沒有錯誤的訂閱?
thx!