2017-06-06 7 views
0

私はパスポートを使用してユーザーを認証していますが、アクセスに時間がかかります。私はreqオブジェクトをログに記録するときにユーザーオブジェクトを参照しますが、req.userにログを記録またはアクセスしようとすると定義されません。私も手動でユーザーオブジェクトを設定しようとしましたが、私はまだ定義されていません。 req内のものにアクセスするためのトリックがあるのですか、私はここにコンセプトがありませんか?ここで私は私のコントローラに持っているものです。ノードエクスプレスでreq内のユーザーオブジェクトにアクセスする方法は?

passport.authenticate('local', function(err, user, info) { 
    if (err) { 
    return next(err); 
    } 
    if (!user) { 
    return res.status(401).json({ 
     err: info 
    }); 
    } 
req.logIn(user, function(err) { 

    if (err) { 
    return res.status(500).json({ 
     err: 'Could not log in user' 
    }); 
    } 
    req.user = user; 
    console.log(req.user); 
    res.status(200).json(req.user); 
}); 
})(req, res, next); 

答えて

0

、これを試してみてください。この例では

app.post("/url" , function(req , res , next){ 
    passport.authenticate('local', function(err, user, info) { 
     if (err) { 
     return next(err); 
     } 
     if (!user) { 
     return res.status(401).json({ 
      err: info 
     }); 
     } 

     console.log( req.user); 

     req.logIn(user, function(err) { 

       if (err) { 
       return res.status(500).json({ 
        err: 'Could not log in user' 
       }); 
       } 
     req.user = user; 
     console.log(req.user); 
     res.status(200).json(req.user); 
     }); 
    })(req, res, next); 

}) 

、(その認証に注意してください)ではなくルートとして使用されるより、ルートハンドラ内から呼び出されますミドルウェア。これにより、closureを介してreqオブジェクトとresオブジェクトにコールバックアクセスが与えられます。

関連する問題