2017-02-16 4 views
-1

ミドルウェアを直ちに呼び出さずにルートハンドラに渡すようにミドルウェアを構造化するにはどうすればよいですか?ミドルウェアを関数宣言としてラップする

// Changing this 
import auth from '../middleware/auth' 

userRouter.get('/dashboard', auth().authenticate(), function(req, res) { 
    res.send('It worked! User id is: ' + req.user.id) 
}) 

// To this 
import auth from '../middleware/auth' 

userRouter.get('/dashboard', auth.authenticate, function(req, res) { 
    res.send('It worked! User id is: ' + req.user.id) 
}) 

ミドルウェア機能

middleware/auth.js

module.exports = function() { 
    var strategy = new JwtStrategy(options, function(payload, done) { 
    (...) 
    }); 
    (...) 
    return { 
    initialize:() => { 
     return passport.initialize(); 
    }, 
    authenticate:() => { 
     return passport.authenticate("jwt", { session: false }); 
    } 
    }; 
}; 

私はauthenticatereq, res, nextに合格しなければならないと仮定したが、その後どのように私はpassport.authenticateにそれを渡すのですか?

答えて

0

半分の貧弱なヒトの溶液。特別な取り扱いはできません。

module.exports = function() { 
    var strategy = new JwtStrategy(options, function(payload, done) { 
    (...) 
    }); 
    (...) 
    return { 
    initialize:() => { 
     return passport.initialize(); 
    }, 
    authenticate: passport.authenticate("jwt", { session: false }) 
}; 
関連する問題