【发布时间】:2016-02-23 07:54:25
【问题描述】:
此 Meteor 应用已删除不安全和自动发布功能,并添加了帐户密码。
它使用 Accounts.createUser({username: someName, password: somePwrd}); 可以在 mongo 提示符下进行验证。
我正在尝试Tasks1.insert(params); 并被拒绝访问
我不知道为什么在浏览器控制台上更新和插入会被拒绝访问。请告诉我为什么以及如何解决它?谢谢
//both.js
Tasks1 = new Mongo.Collection('tasks1');
/////////////////////////////////////////////////////
//server.js
Meteor.publish('tasks1', function(){
return Tasks1.find({userId: this.userId});
});
Meteor.methods({
logMeIn: function(credentials) {
var idPin = credentials[0] + credentials[1];
Accounts.createUser({username: idPin, password: credentials[1]});
}
});
Meteor.users.allow({
insert: function (userId, doc) {
console.log(userId);
//var u = Meteor.users.findOne({_id:userId});
return true;
}
});
/////////////////////////////////////////////////////
//client.js
Template.login.events({
'click #logMe': function() {
var credentials = [$('#id').val(), $('#pin').val()];
Meteor.call('logMeIn', credentials, function(err, result) {
if (result) {
console.log('logged in!');
}
});
}
});
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;
Tasks1.insert(params); //<<<<<<----------------------
}
}
}
});
【问题讨论】:
-
文件是否也在适当的目录中(服务器/客户端等)?您实际上是否将用户密码作为用户名的一部分以明文形式存储在数据库中?
-
两个问题都是:)
-
server.js文件相对于项目根目录的路径是什么? -
appName/server/server.js
-
那我不明白为什么会发生这样的事情。可能是发布的代码中未提及的另一个副作用。您可以创建一个最小的可重现示例并发布您遇到的错误吗?另外,为什么每次有人提交表单时都要创建一个用户,为什么要以明文形式存储密码?
标签: meteor