Node.js 我可以在Passport策略中使用Salt而不是纯文本密码吗?
以下是我的Passport js本地策略:Node.js 我可以在Passport策略中使用Salt而不是纯文本密码吗?,node.js,express,authentication,passport.js,Node.js,Express,Authentication,Passport.js,以下是我的Passport js本地策略: 'use strict'; /** * Module dependencies. */ var passport = require('passport'), LocalStrategy = require('passport-local').Strategy, User = require('mongoose').model('User'); module.exports = function() { // Use l
'use strict';
/**
* Module dependencies.
*/
var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
User = require('mongoose').model('User');
module.exports = function() {
// Use local strategy
passport.use(new LocalStrategy({
usernameField: 'username',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({
//username: new RegExp(username, 'i')
username: String(username).toLowerCase()
}, function(err, user) {
if (err) {
console.log('ERR: ', err);
return done(err);
}
if (!user) {
return done(null, false, {
message: 'Unknown user or invalid password'
});
}
if (!user.authenticate(password)) {
return done(null, false, {
message: 'Unknown user or invalid password'
});
}
return done(null, user);
});
}
));
};
我需要使用电子邮件和salt密码(存储在localStorage中)在webview(而不是浏览器)中重新验证我的用户
使用哈希/salt密码重新验证用户的身份时,我会对此策略进行哪些更改?(或者这是一个糟糕的想法?默认情况下,passportjs会对您的密码进行salt+哈希运算,结果会存储在您的数据库中,因此您永远不会在该技术中使用纯文本密码 其次,在localstorage中存储密码(即使是盐渍密码)是一种糟糕的做法。你应该只问你的用户他的密码,永远不要存储它!最好的方法是存储一个令牌并检查它是否有效(jwt令牌很好)
例如:默认情况下,passportjs会对您的密码进行salt+哈希运算,结果会存储在您的数据库中,因此您永远不会在该技术中使用纯文本密码 其次,在localstorage中存储密码(即使是盐渍密码)是一种糟糕的做法。你应该只问你的用户他的密码,永远不要存储它!最好的方法是存储一个令牌并检查它是否有效(jwt令牌很好)
举个例子:Ah$h*t你是对的。我发现了一个更好的方法,使用sessionId重新验证:啊$h*t你说得对。我发现了一种更好的方法,使用sessionId重新验证: