2016-06-11 2 views
0

パスポートlocalStrategyを使用して、NodeJs Webアプリケーションで非常に簡単な認証を作成したいと考えています。私がやったNodeJsパスポートローカル戦略認証

app.post('/login', function(req, res) { 
    console.log('before auth'); 
    passport.authenticate('local'), 
    function(req, res) { 
     // If this function gets called, authentication was successful. 
     // `req.user` contains the authenticated user. 
     // res.redirect('/users/' + req.user.username); 
     console.log('auth is ok'); 
    } 
}); 

:私はフィールドを持つWebフォームを持っている

  1. がログインとパスワードを入力し、アクション=「/ログイン」私のアプリケーション内のルータで

  2. 私はのためのルートを持っていますこのようなログインは

フォームを送信した後、私は自分のコンソールの "before auth"を見ることができますtルータが動作しています。しかし、認証が成功しなかったことを意味する「auth is ok」を見ることはできません。

アプリケーションでpassport.authenticate関数を実装するにはどうすればよいですか?

+0

[example code](https://github.com/passport/express-4.x-local-example)から始めてください。 – robertklep

+0

@robertklepありがとう。あなたの例は私のために働いています。私はあなたと私のコードを比較しようとし、私の誤りがどこにあるのかを見出そうとします... –

+0

@robertklepあなたが私たちに与えたリンクに何があるか教えてください。 「done」という言葉。 'done'はドキュメントで多く使われています。私は 'done'と' cb'が交換可能であるかどうか疑問に思っていました –

答えて

0
var passport = require('passport'); 
var LocalStrategy = require('passport-local').Strategy; 

    passport.use(new LocalStrategy({ 
    usernameField: 'email', 
    passwordField: 'password' 
    }, function(email, password, next) { 
    //do what you want here 
    //call next(pass parameter here (i.e error, object) 
    })); 


app.post('/login', function(req, res) { 
     console.log('before auth'); 
     passport.authenticate('local', function(err, anotherthing){ 
     //err and anotherThing are the parameters send by strategy (next function). 

     }); 
    }); 

hereもご覧ください。これを達成するための詳細については、種類について

+0

申し訳ありませんが私の質問は十分に明確ではなかった。私はローカル戦略の実装の実装にいくつかの助けが必要です。つまり、Webアプリケーションでユーザーを認証するために必要なことは何ですか? –

+0

@AlexZhulin戦略を実装する方法を理解するための答えを更新しました。またあなたに役立つリンクが付いた別のトピックへのリンクを投稿しました。次 (;、 機能(ユーザ名、パスワード、次){ はconsole.log( 'LocalStrategy') –

+0

私はpassport.use(新しいlocalStrategy({: '電子メール'、 PASSWORDFIELD 'のpasswd' usernameFieldの追加しました} ); } ));あなたが示唆したように、このコードの平和は私のログ 'LocalStrategy'メッセージで見ることができないので呼び出されなかったようだ...私はどこに間違っていると私は示唆できますか?事前にお礼します –