Node.js 我可以在Passport策略中使用Salt而不是纯文本密码吗?

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

以下是我的Passport js本地策略:

'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重新验证: