2017-04-21 21 views
0

パスポートのローカル戦略を使用してログインページ認証を構築しました。 users.js内のコードの一部が...成功したここにノードjsとexpress jsの認証

router.post('/login', 
     passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}), 
     function(req, res) { 
     res.redirect('/'); 
     }); 

しかし、私はI「bluepages」と呼ばれる独自のモジュールを持っているため、LDAPを通じて私の会社の資格情報を使用してログインを認証したいです上記のブロックを以下のように置き換えました。

router.post('/login',function(req,res){ 
    //console.log(req.body); 
    res.redirect('/'); 
    bluepages.authenticate(req.body.username,req.body.password,function(err,verified){ 
    if(err) console.log(err); 
    else { 
     if(verified) 
      return res.redirect('/'); 
      //console.log('Success'); 
     else 
      return res.redirect('/users/login'); 
      //console.log('Invalid Credentials'); 

    } 
}); 
}); 

資格情報が正しい場合は「成功」ログ、資格情報が正しくない場合は「無効な資格情報」ログが表示されます。これは完璧に働いています。しかし、私の必要条件は、res.redirectが必要なビューを指示していない場合です。資格情報が正しい場合でもログインページに残ります。私はそれを解決することができない次のエラーを取得します。あなたは、その見解を指示する方法を教えてください。

_http_outgoing.js:344 
    throw new Error('Can\'t set headers after they are sent.'); 
    ^

Error: Can't set headers after they are sent. 

答えて

0

こんにちはあなたはコメント//console.log(req.body)

+0

こんにちはMarwen後res.redirect('/');を削除する必要があり、私は( '/')res.redirectを削除。コメント後//console.log(req.body)。今私は以前に得ていたエラーを得ていない。しかし、正しい資格情報を使用してログインしようとしているときに、インデックスビューにリダイレクトされません。ログインページは、ユーザー名とパスワードの入力後に静的になりました。送信ボタンをクリックすると、インデックスページには表示されません。あなたはそれで私を助けてくださいできますか? –

+0

こんにちは、別の質問を投稿してください、そして、あなたは解決されたようにこの質問をするべきです。 –