Tôi sử dụng Passport-Local Mongoose để mã hóa mật khẩu của tài khoản. Nhưng tôi không biết làm thế nào để thay đổi mật khẩu. Có ai biết cách làm không? TksHộ chiếu-Mongoose địa phương - Thay đổi mật khẩu?
15
A
Trả lời
19
Nhìn vào nguồn có một hàm được thêm vào lược đồ được gọi là setPassword. Tôi tin rằng sau khi xác thực bạn có thể gọi nó để thay đổi mật khẩu cho người dùng.
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);
});
});
};
6
câu trả lời tốt, nhưng đối với những người đến từ các MEAN ngăn xếp (sử dụng hộ chiếu cục bộ, không hộ chiếu cục bộ-cầy mangut):
//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;
});
Vì vậy, điều này sẽ thay đổi pass:
user.password = '12345678';//and after this setter...
user.save(function(err){ //...save
if(err)...
});
9
Không cần xác thực. Truy xuất người dùng từ tài khoản bằng cách sử dụng phương thức findByUsername()
, được đặt trên mô hình bằng hộ chiếu-local-mongoose, sau đó chạy setPassword()
, sau đó user.save()
trong gọi lại.
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);
})
tôi gọi người dùng sanitizedUser()
vì tôi đã cấu hình hộ chiếu cục bộ-cầy mangut để không trở về các lĩnh vực mật khẩu hoặc muối sử dụng findByUsername()
và các tùy chọn hộ chiếu trong mô hình.
Các vấn đề liên quan
- 1. Liferay - tùy chỉnh thay đổi mật khẩu
- 2. thay đổi mật khẩu git-svn
- 3. Thay đổi mật khẩu Derby DB
- 4. Thay đổi mật khẩu trong Django quản
- 5. Thay đổi mật khẩu SSH trong Git
- 6. Thay đổi mật khẩu trong SQL Developer sau ORA-28001 mật khẩu đã hết hạn
- 7. Làm cách nào để thay đổi mật khẩu gốc thành mật khẩu trống?
- 8. Thay đổi mật khẩu người dùng trong ASP.NET Forms Authentication
- 9. Rails 3 Thiết lập thủ công thay đổi mật khẩu
- 10. Thay đổi mật khẩu của Sitecore Bắt buộc
- 11. Cách khôi phục hoặc thay đổi mật khẩu Oracle sysdba
- 12. PHP/PAM để thay đổi mật khẩu người dùng?
- 13. Thay đổi mật khẩu gốc từ tập lệnh
- 14. Làm cách nào để thay đổi mật khẩu ActiveAdmin?
- 15. Apache htpasswd thay đổi mật khẩu an toàn
- 16. Thực hiện thay đổi mật khẩu trong Symfony2
- 17. Thay đổi mật khẩu API thành viên ASP.NET
- 18. mật khẩu đã thay đổi, access token không hợp lệ
- 19. Thay đổi mật khẩu trong couchdb 1.2 qua api?
- 20. Devise, cho phép người dùng thay đổi mật khẩu
- 21. Buộc người dùng thay đổi mật khẩu đã hết hạn trong bảo mật mùa xuân
- 22. Khôi phục mật khẩu bằng mật khẩu sha1 băm
- 23. Làm thế nào để chuyển đổi mật khẩu văn bản để băm mật khẩu trong wordpress
- 24. Tôi nên sử dụng phương pháp băm mật khẩu nào?
- 25. Phương pháp băm mật khẩu Mysql cũ vs mới
- 26. Quên mật khẩu URL
- 27. thay đổi miền địa phương theo chương trình
- 28. Giữ thay đổi địa phương trong một repo git
- 29. Làm thế nào để tự thay đổi mật khẩu trong thành viên asp.net?
- 30. Đặt lại mật khẩu ASP.NET - vấn đề bảo mật?
Chỉ cần thử điều này và nó hoạt động! Điều này sẽ được đánh dấu là câu trả lời được chấp nhận. –
Chủ đề cũ, dù sao: thực sự, bạn không cần xác thực. Truy xuất người dùng từ tài khoản, setPassword, sau đó user.save trong gọi lại, và bạn đã hoàn tất. –
Xác thực theo nghĩa là email 'quên mật khẩu' hoặc một số phương tiện khác để đảm bảo người dùng là người mà họ khiếu nại – user1441287