2017-07-29 2 views
0

は私のパスポートのjsローカル戦略です:Passport戦略でプレーンテキストのパスワードの代わりにSaltを使用できますか?ここ

'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); 
      }); 
     } 
    )); 
}; 

私は、電子メールと(のlocalStorageに保存されている)塩漬けパスワードを使用してのWebView(いないブラウザ)での再認証私のユーザーに必要です。

ハッシュ/ソルトパスワードを使用してユーザーを再認証するには、この戦略をどのように変更しますか? (またはそれはひどいアイデアです?)

答えて

1

がpassportjsと、デフォルトでは、パスワードはハッシュ化+塩漬けされ、この結果は、データベースに保存されますので、あなたが

次のこの技術で、プレーンテキストのパスワードを使用することはありませんローカルストアにパスワードを保存することは悪いことです。あなたは自分のパスワードを尋ねて、それを保存しないでください!あなたは正しいhttps://scotch.io/tutorials/easy-node-authentication-setup-and-local

+0

ああ$時間* tの:最良の方法は、トークンを保存し、それが有効なもの(JWTトークンは素晴らしいです)

一例だかどうかを確認することです。ここでは、再認証するためにsessionIdを使用して見つけたより良いアプローチです:http://justbuildsomething.com/cordova-and-express-session/ – tonejac

関連する問題