javascript - 使用 Node.js 验证 DDP 客户端

标签 javascript node.js meteor ddp

node.js DDP 客户端(使用 node-ddp )调用 DDP 服务器上的方法 insertMessage,该方法将文档保存到 mongodb。

Meteor.methods({
    'insertMessage': function(msg) {
        Messages.insert({'msg':msg, 'userId': userId})
    }
})

如何才能只允许经过身份验证的 DDP 客户端插入包含其唯一标识符 userId 的文档,而不能伪造其他人的 userId?我看了ddp-login但似乎成功的身份验证会给出一个 token ,这个 token 可以用于我们的目的吗?

Meteor.methods({
    'insertMessage': function(msg) {

        // Check that the current user's userId (how can we do this?)
        userId = getUserId()

        Messages.insert({'msg':msg, 'userId': userId})
    }
})

最佳答案

在服务器中,你有这个参数..

Meteor.methods

this.userId

this.setUserId

this.isSimulation

this.unblock

this.connection

Meteor.methods({
    'insertMessage': function(msg) {
        userId = this.userId;
        Messages.insert({'msg':msg, 'userId': userId})
    }
})

关于javascript - 使用 Node.js 验证 DDP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25815894/

相关文章:

javascript - Photoswipe 无法按预期工作

javascript - 如何使用 onclick 属性选择 span?

javascript - 我应该如何打包插件函数以在验证指令中使用?

javascript - 有没有办法使用自定义按钮为 Aldeed : Autoform 添加值

css - 如何测试 LESS 文件是否正在编译?

JQuery 和 JS 变量

javascript - Javascript 中有 "global function"或 "main function"吗?

node.js - npm install 出现错误

node.js - 在 Sails.js 中设置 cookie 过期时间

javascript - 防止插入重复元素 - 而不是路由到现有元素