Czy ktoś wie, czy mogę zmienić hasło w couchdb 1.2? Aby tworzyć użytkownika Mam formularz, który pobiera informacje o użytkowniku, a następnie posty na bazie _users tak („użytkownicy” w url poniżej zastępowanym):Zmiana hasła w couchdb 1.2 przez api?
// Create a user
var userObj = {
_id: "org.couchdb.user:test",
type: "user",
name: "test",
roles: ["user"],
emailAddress: "[email protected]",
firstName: "Test",
lastName: "Test",
password: "password"
};
$.ajax({
url: "https://stackoverflow.com/users/org.couchdb.user:test",
type: "PUT",
dataType: "json",
contentType:"application/json",
data: JSON.stringify(userObj)
});
couchdb 1.2 generuje hash hasła i sól dla mnie i przechowuje użytkownika. Działa świetnie. Aby zaktualizować hasło, próbowałem pobrać użytkownika, usuwając pola password_sha i salt, dodając pole hasła, a następnie ponownie publikując dokument. Miałem nadzieję, że kanapa po prostu przeliczy pola password_sha i salt dla mnie i zaktualizuje dokument, ale tak nie jest. Pola password_sha i salt nie są aktualizowane.
// Update a user
$.get("https://stackoverflow.com/users/org.couchdb.user:test")
.done(function(userDoc){
delete userDoc.password_sha;
delete userDoc.salt
userDoc.password = "test";
$.ajax({
url: "https://stackoverflow.com/users/org.couchdb.user:test",
type: "PUT",
dataType: "json",
contentType:"application/json",
data: userDoc
});
});
Podejrzewam, że kanapa generuje tylko pola password_sha i salt podczas tworzenia dokumentu. Jeśli tak jest, czy powinienem wygenerować własne pola password_sha i salt i zamiast tego zamieścić je w zaktualizowanym dokumencie? Czy coś mi umyka?
Dzięki!
Nieważne. Próbowałem zaktualizować ciąg JSON ... doh! Wystarczy przeanalizować userDoc, dodać hasło i ponownie przesłać. – Troy
Awesome! Czy mógłbyś odpowiedzieć na własne pytanie tym komentarzem ("po prostu dodaj wartość hasła i prześlij ponownie") i zaznacz poprawną odpowiedź. To może być bardzo użyteczne dla innych osób szukających tego w przyszłości. Dzięki! – JasonSmith
@Troy Umieść komentarz jako odpowiedź na własne pytanie, aby zaakceptować je i usunąć z listy pytań bez odpowiedzi. Dziękuję Ci. –