【问题标题】:insert still works after Meteor.logout在 Meteor.logout 之后插入仍然有效
【发布时间】:2016-02-24 01:16:40
【问题描述】:

此 Meteor 应用已移除不安全和自动发布功能,并添加了帐户密码。
它使用Accounts.createUser({username: someName, password: somePwrd});
它避免使用允许/拒绝,而是使用 Meteor.call 插入文档,因为在 docs 中读取,它说

服务器代码是受信任的,不受允许和拒绝限制。这包括使用 Meteor.call 调用的方法——它们应该进行自己的访问检查,而不是依赖于允许和拒绝。

但是当我启动Meteor.logout() 时,我仍然能够将新文档插入到Tasks1 集合中。这个怎么可能?我虽然注销将停止插入任何新文档。我该如何解决?谢谢

///////////////////////////
//both/both.js
///////////////////////////
Tasks1 = new Mongo.Collection('tasks1');

///////////////////////////
//server/server.js
///////////////////////////
Meteor.publish('tasks1', function(){
  return Tasks1.find({userId: this.userId});
});

Meteor.methods({
  addTasks1: function (doc) {
    Tasks1.insert(doc);
  }
});

///////////////////////////
//client/client.js
///////////////////////////
Template.footer.events({
  'click button': function () {
     if ( this.text === "SUBMIT" ) {
        var inputs = document.getElementsByTagName('input');
        for (var i = 0; i < inputs.length; i++) {
          var params = {};
          params[inputs[i].name] = inputs[i].value;
          Meteor.call('addTasks1', params);
         }
      }
   }
 });

Template.mainMenu.events({
  'click #logout': function () {
    Meteor.logout();
  }  
});

【问题讨论】:

    标签: meteor


    【解决方案1】:

    在你的服务器addTasks1方法中,你应该首先检查用户是否是这样的用户:

    Meteor.methods({
        addTasks1: function(doc) {
            if (!Meteor.userId()) {
                throw new Meteor.Error("Not Authorized");
            } else {
                Tasks1.insert(doc);
            }
    
        }
    })
    

    单独注销并不能阻止用户插入。您必须编辑您的方法代码才能实现此目的。

    【讨论】:

      【解决方案2】:
       addTasks1: function (doc) {
          if (Meteor.userId()) {
              Tasks1.insert(doc);
          }
       }
      

      【讨论】:

        猜你喜欢
        • 2020-08-02
        • 2016-03-26
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多