尽管存在不安全的

时间:2015-05-14 20:34:00

标签: javascript mongodb authentication meteor

我安装了不安全的软件包,但是我在客户端控制台中获得了以下内容:

Meteor.user()
Object {_id: "4Dyaa5wRmxmq7j7XF", profile: Object, services: Object}_id: "4Dyaa5wRmxmq7j7XF"profile: Objectname: "Mel Oug"__proto__: Objectservices: Objectfacebook: Object__proto__: Object__proto__: Object__defineGetter__: function __defineGetter__() { [native code] }__defineSetter__: function __defineSetter__() { [native code] }__lookupGetter__: function __lookupGetter__() { [native code] }__lookupSetter__: function __lookupSetter__() { [native code] }constructor: function Object() { [native code] }hasOwnProperty: function hasOwnProperty() { [native code] }isPrototypeOf: function isPrototypeOf() { [native code] }propertyIsEnumerable: function propertyIsEnumerable() { [native code] }toLocaleString: function toLocaleString() { [native code] }toString: function toString() { [native code] }valueOf: function valueOf() { [native code] }get __proto__: function __proto__() { [native code] }set __proto__: function __proto__() { [native code] }
va = Meteor.user()._id
"4Dyaa5wRmxmq7j7XF"
Meteor.users.update(va, {$set: {email: 'the@aarts.com'}})
1
debug.js:41 update failed: Access denied

我不确定要包含哪些其他相关代码。我没有设置拒绝(或允许)规则。这是一个非常简单的用户设置,我只是看不到可能阻止它的东西。

这是我得到的包裹:

ccounts-facebook          1.0.4  Login service for Facebook accounts
accounts-google            1.0.4  Login service for Google accounts
accounts-twitter           1.0.4  Login service for Twitter accounts
aldeed:autoform            5.1.2  Easily create forms with automatic insert a...
aldeed:collection2         2.3.3  Automatic validation of insert and update o...
autopublish                1.0.3  Publish the entire database to all clients
blaze                      2.1.2  Meteor Reactive Templating library
cmather:handlebars-server  2.0.0  Allows handlebars templates to be defined o...
email                      1.0.6  Send email messages
insecure                   1.0.3  Allow all database writes by default
iron:router                1.0.7  Routing specifically designed for Meteor
meteor-platform            1.2.2  Include a standard set of Meteor packages i...
mquandalle:jade            0.4.1* Jade template language
msavin:mongol              1.0.30* The insanely handy development package for...
service-configuration      1.0.4  Manage the configuration for third-party se...
twbs:bootstrap             3.3.4  The most popular front-end framework for de...
useraccounts:bootstrap     1.8.1* Accounts Templates styled for Twitter Boots

1 个答案:

答案 0 :(得分:6)

Meteor.users集合是一个特殊情况,具有已建立的结构和权限。即使安装了不安全的软件包,您也只能从客户端更新user.profile字段。

这将起作用,例如:

Meteor.users.update(va, {$set: {'profile.email': 'the@aarts.com'}})

一般来说,电子邮件会从服务器代码中保存并推送到提供的电子邮件'用户记录中的数组。

"电子邮件" :[         {             "地址" :" the@aarts.com",             "验证" :假的         }     ],

来自流星文档:

  

默认情况下,允许用户使用Accounts.createUser指定自己的配置文件字段,并使用Meteor.users.update对其进行修改。要允许用户编辑其他字段,请使用Meteor.users.allow。