我已经构建了一个 Chrome 扩展程序,它可以选择文本,当我右键单击并选择上下文菜单项时,它会将该文本发送到我的 Meteor 应用程序。这很好用,但是,我无法弄清楚使用 Oauth 对用户进行身份验证的过程。
我正在使用这个包:https ://github.com/eddflrs/meteor-ddp
这是 background.js 中的 JS(用于 Chrome 扩展):
var ddp = new MeteorDdp("ws://localhost:3000/websocket");
ddp.connect().then(function() {
ddp.subscribe("textSnippets");
chrome.runtime.onMessage.addListener(function(message) {
ddp.call('transferSnippet', ['snippetContent', 'tag', snippetString]);
});
});
这是我的 Chrome 扩展中的其他 JS 文件的相关部分:
function genericOnClick(info) {
snippetString = [];
snippetString.push(info.selectionText);
var snippetTag = prompt('tag this thing')
snippetString.push(snippetTag);
chrome.runtime.sendMessage(snippetString);
}
这是我的 Meteor 应用程序的相关部分:
'transferSnippet': function(field1, field2, value1, value2) {
var quickObject = {};
quickObject.field1 = value1[0];
quickObject.field2 = value1[1];
TextSnippets.insert({
snippetContent: value1[0],
tag: value1[1]
});
}
基本上我被卡住了,不知道如何进行 DDP 调用,该调用将与我的 Meteor 应用程序对话以验证用户身份