2012-04-20 22 views
5

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!

+1

Nieważne. Próbowałem zaktualizować ciąg JSON ... doh! Wystarczy przeanalizować userDoc, dodać hasło i ponownie przesłać. – Troy

+1

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

+0

@Troy Umieść komentarz jako odpowiedź na własne pytanie, aby zaakceptować je i usunąć z listy pytań bez odpowiedzi. Dziękuję Ci. –

Odpowiedz

2

Nieważne. Próbowałem zaktualizować ciąg JSON ... doh! Wystarczy przeanalizować userDoc, dodać hasło, a następnie ponownie przesłać.

Powiązane problemy