Ich benutze Passport-Local Mongoose, um das Passwort des Kontos zu verschlüsseln. Aber ich weiß nicht, wie ich das Passwort ändern soll. Wer weiß, wie es geht? TksPass-Local Mongoose - Passwort ändern?
Antwort
Mit Blick auf die Quelle gibt es eine Funktion, die dem Schema namens setPassword hinzugefügt wird. Ich glaube, dass Sie nach der Authentifizierung anrufen können, um das Passwort für den Benutzer zu ändern.
schema.methods.setPassword = function (password, cb) {
if (!password) {
return cb(new BadRequestError(options.missingPasswordError));
}
var self = this;
crypto.randomBytes(options.saltlen, function(err, buf) {
if (err) {
return cb(err);
}
var salt = buf.toString('hex');
crypto.pbkdf2(password, salt, options.iterations, options.keylen, function(err, hashRaw) {
if (err) {
return cb(err);
}
self.set(options.hashField, new Buffer(hashRaw, 'binary').toString('hex'));
self.set(options.saltField, salt);
cb(null, self);
});
});
};
Gute Antwort, aber für diejenigen, die aus dem MEAN Stapel kommen (verwendet Pass-lokal, nicht Pass-local-Mungo):
//in app/models/user.js
/**
* Virtuals
*/
UserSchema.virtual('password').set(function(password) {
this._password = password;
this.salt = this.makeSalt();
this.hashed_password = this.encryptPassword(password);
}).get(function() {
return this._password;
});
So würde dies den Pass ändern:
user.password = '12345678';//and after this setter...
user.save(function(err){ //...save
if(err)...
});
Keine Authentifizierung erforderlich. Benutzer aus dem Konto mit findByUsername()
Methode abrufen, die auf dem Modell von Pass-Local-Mungo platziert wurde, führen Sie dann setPassword()
, dann user.save()
im Rückruf.
userModel.findByUsername(email).then(function(sanitizedUser){
if (sanitizedUser){
sanitizedUser.setPassword(newPasswordString, function(){
sanitizedUser.save();
res.status(200).json({message: 'password reset successful'});
});
} else {
res.status(500).json({message: 'This user does not exist'});
}
},function(err){
console.error(err);
})
Ich nenne den Benutzer sanitizedUser()
weil ich Pass-local-Mungo konfiguriert haben, dass das Passwort nicht oder Salzfelder zurückkehren findByUsername()
und die Passoptionen im Modell.
- 1. Konto erstellen, Passwort vergessen und Passwort ändern
- 2. Django Passwort ändern
- 3. popen Passwort ändern linux
- 4. Passwort in PHP ändern
- 5. ASP.NET Identität Passwort ändern
- 6. git-svn Passwort ändern
- 7. Ektron Benutzer Passwort ändern?
- 8. Sitecore Forced Passwort ändern
- 9. MVC Validierung Passwort ändern. aktuelles Passwort vs. neues Passwort
- 10. Modellwerte nach Belastung in Mongoose ändern
- 11. Mongoose: Neu und Ändern Attribute im Schema
- 12. Ändern root-Passwort von Skript
- 13. Passwort ändern für npm Benutzer
- 14. LD iisadmpwd - Passwort ändern abgelaufen
- 15. Implementiere Passwort ändern mit Loopback
- 16. Passwort ändern char in HTML
- 17. Passwort ändern in Django Admin
- 18. Mongoose ODM, Variablen vor
- 19. Keystore-Passwort von keinem Passwort in ein nicht leeres Passwort ändern
- 20. Ändern yii2 Passwort durch das aktuelle Passwort mit dem eingegebenen Passwort
- 21. Wie LDAP-Passwort über JNDI ändern
- 22. Wie WebDAV Passwort lokal zu ändern
- 23. Odoo 9 Website Benutzer selbst Passwort ändern
- 24. php Passwort verifizieren, bevor Sie es ändern
- 25. Grant-Passwort ändern Privileg in Microsoft Access
- 26. ASP.NET Membership Configuration Tool - Passwort ändern?
- 27. Benutzernamen und Passwort des fiddler Proxyservers ändern
- 28. Ändern mysql root-Passwort auf Centos7
- 29. Ändern Linux Benutzer Passwort von PHP-Skript
- 30. Wiederherstellen oder Ändern von Oracle sysdba Passwort
Ich habe es einfach versucht und es funktioniert! Dies sollte als akzeptierte Antwort markiert werden. –
Alter Thread, wie auch immer: Eigentlich brauchst du keine Authentifizierung. Rufen Sie den Benutzer aus dem Konto, setPassword, dann user.save im Callback ab, und Sie sind fertig. –
Authentifizierung in dem Sinne, dass eine "Passwort vergessen" E-Mail oder ein anderes Mittel zur Gewährleistung der Benutzer ist, wer sie beanspruchen – user1441287