2016-08-29 11 views
0

私は、パスワードを暗号化するためにpassport.js認証とbcryptを使用するサインアップとログインフォームを持っていますが、私のPOSTメソッドフォームの送信にはパスワード値がプレーンテキストではなくプレーンテキストbcrypt暗号化。私はこれをローカルでテストしていますが、httpsを有効にする計画を立てています。私はこれについて緊張するべきですか?私が含まれていない私のフォームタグに行う必要のある調整がありますか?Expressjs隠し敏感なPOST情報

form data

フォーム:ここ

<h1>Login</h1> 
      <form action="/login" method="post"> 
       <input type="text" class="form-control" id="login-username" name="email" value="" placeholder="Email"> 
       <br /> 
       <input type="password" class="form-control" id="login-password" name="password" value="" placeholder="Password"> 
       <div class="login-buttons"> 
        <button type="submit">Login</button> 
       </div> 
      </form> 

ログイン用のルートです:

siteRoutes.route('/login') 

    .get(function(req, res){ 
     res.render('pages/site/login.hbs',{ 
      error: req.flash('error') 
     }); 
    }) 

    .post(passport.authenticate('local', { 
     successRedirect: '/app', 
     failureRedirect: '/login', 
     failureFlash: 'Invalid email or password.' 
    })); 

Passportjsログイン認証:

//Login logic 
passport.use('local', new LocalStrategy({ 
    passReqToCallback: true, 
    usernameField: 'email' 
}, function(req, email, password, done) { 
     console.log("Database query triggered"); 
     //Find user by email 
     models.User.findOne({ 
      where: { 
      email: req.body.email 
      } 
     }).then(function(user) { 
      if (!user) { 
       done(null, false, { message: 'The email you entered is incorrect' }, console.log("Unknown User")); 
      } else if (!user.validPassword(password)){ 
       done(null, false, console.log("Incorrect Password")); 
      } else { 
       console.log("User match"); 
       done(null, user); 
      } 
     }).catch(function(err) { 
      console.log("Server Error"); 
      return done(null, false); 
     }); 
    })); 

答えて

1

標準的な慣行で、心配する必要はありません。たとえば、Facebookにログインするときに送信するものを確認してください。実稼働環境でSSLを使用していることを確認してください。機密情報を保護するためにSSLがあります。

ハッシュと一致することを確認するには、アプリケーションでプレーンテキストパスワードが必要です。ハッシュを送信し、それを単にデータベースのハッシュと比較すると、データベースには各ユーザーのプレーンテキストパスワードが効果的に格納されます。結局のところ、ハッシュは単なる文字列です。比較の説明の詳細は

、チェックhttps://stackoverflow.com/a/6833165/3349511

+0

は、あなたの答えをありがとうございました。私の質問をクリアし、リンクに感謝します! – cphill

関連する問題