2016-08-18 14 views
1

私はログイン中にpassport.jsを実装しました。私はpassport.authenticated()関数をミドルウェアに入れました。isAuthenticated return function false

app.post('/api/v1/login', 
     function (req, res, next) { 
      passport.authenticate('local-login', function (err, user, info) { 
       if (user == false) { 
        return res.json(ApiException.newNotAllowedError(api_errors.invalid_auth_credentials.error_code, null).addDetails(api_errors.invalid_auth_credentials.description)); 
       } 
       else { 
        next(); 
       } 
      })(req, res, next); 
     }, controllerIndex.auth.login); 

ログインに成功しました。

isAuthenticate()関数を使用して他のリクエストを認証すると、falseを返します。

私がpassport.authenticatedからミドルウェア機能を削除した場合、他のリクエストはtrueを返します。ユーザーが認証されていない間にカスタム応答を返すため、私はミドルウェア機能が必要です。私が間違って実装しているものを助けてください。

答えて

1

あなたがクッキーを設定したり、ユーザがreq.login

app.post('/api/v1/login', 
    function (req, res, next) { 
    passport.authenticate('local-login', function (err, user, info) { 
    if (user == false) { 
     return res.json(ApiException.newNotAllowedError(api_errors.invalid_auth_credentials.error_code, null).addDetails(api_errors.invalid_auth_credentials.description)); 
    }else{ 

    req.logIn(user, function(err) { 
     if (err) { return next(err); } 
     next(); 
    }); 

    } 
})(req, res, next); 
}, controllerIndex.auth.login); 
を使用してログインであることを確認する必要があります
関連する問題