有谁知道我是否可以在 couchdb 1.2 中更改密码?要创建一个用户,我有一个获取用户信息的表单,然后像这样发布到 _users 数据库(下面的 url 中的“用户”是代理的):
// Create a user
var userObj = {
_id: "org.couchdb.user:test",
type: "user",
name: "test",
roles: ["user"],
emailAddress: "test@testy.com",
firstName: "Test",
lastName: "Test",
password: "password"
};
$.ajax({
url: "/users/org.couchdb.user:test",
type: "PUT",
dataType: "json",
contentType:"application/json",
data: JSON.stringify(userObj)
});
Couchdb 1.2 为我生成密码哈希和盐并存储用户。它工作得很好。要更新密码,我尝试检索用户,删除 password_sha 和 salt 字段,添加密码字段,然后重新发布文档。我希望 Couch 能为我重新计算 password_sha 和 salt 字段并更新文档,但事实并非如此。password_sha 和 salt 字段未更新。
// Update a user
$.get("/users/org.couchdb.user:test")
.done(function(userDoc){
delete userDoc.password_sha;
delete userDoc.salt
userDoc.password = "test";
$.ajax({
url: "/users/org.couchdb.user:test",
type: "PUT",
dataType: "json",
contentType:"application/json",
data: userDoc
});
});
我怀疑沙发只会在创建文档时生成 password_sha 和 salt 字段。如果是这种情况,我是否应该只生成自己的 password_sha 和 salt 字段并将它们发布在更新的文档中?我在这里错过了什么吗?
谢谢!