从Emberjs编辑Couchdb _user的安全方法

时间:2013-12-05 21:33:46

标签: security ember.js couchdb

我正在编写一个使用couchdb作为后端的emberjs应用程序,我想让用户能够编辑他们的一些用户信息(他们的姓名和电子邮件等)。我创建了一个这样的模型:

App.Person = DS.Model.extend({
    first_name: DS.attr(),
    last_name: DS.attr(),
    full_name: function() {
        return this.get('first_name') + ' ' + this.get('last_name');
    }.property('first_name', 'last_name')
});

App.User = App.Person.extend({
    name: DS.attr('string'), // Actually their primary email.
    customer: DS.belongsTo('customer', {async: true }),
    teacher: DS.belongsTo('teacher', {async: true }),
    roles: DS.attr(),
    type: DS.attr()
});

我正在使用this couchdb adapter

使用this.currentModel.save();保存模型时,保存效果很好,但是所有这些couchdb _user的其他属性都消失了,因为我没有在我的模型中定义它们:

derived_key
iterations
password_scheme
salt

这使得该用户无法登录。我知道我可以在我的模型上定义它们,但随后它们都会被拉到浏览器上,因为这些是安全必不可少的信息,看起来是个好主意。

有关如何在不暴露所有敏感信息的情况下获取所需行为的任​​何想法?或者由于良好的加密算法,这些信息不像我想的那么敏感吗?

更新

Couchdb结果表明它不支持选择性更新。您必须提供整个对象,因为它将显示在最新版本中,如this SO question所示

0 个答案:

没有答案