【问题标题】:How to pass the configured passport object into the routes modules in Express4?如何将配置的护照对象传递到 Express4 中的路由模块?
【发布时间】:2014-12-07 07:10:13
【问题描述】:

从 Express 4 开始,你不应该这样做

require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport

module.exports = function(app, passport) {
    // =====================================
    // FACEBOOK ROUTES =====================
    // =====================================
    // route for facebook authentication and login

    app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' }));

    // handle the callback after facebook has authenticated the user
    app.get('/auth/facebook/callback',
        passport.authenticate('facebook', {
            successRedirect : '/profile',
            failureRedirect : '/'
        }));

    // route for logging out
    app.get('/logout', function(req, res) {
        req.logout();
        res.redirect('/');
    });
};

相反,您应该使用express.Route() 函数和

var routes = require('./app/routes.js');
app.use('/', routes);

如何将配置好的护照传递到 Express 4 中的路由模块中?

【问题讨论】:

    标签: node.js passport.js express-4


    【解决方案1】:

    function 导出仍可用于在模块之间传递 passport 引用。它只会创建 returnRouter,而不是直接修改 app

    var express = require('express');
    
    module.exports = function(passport) {
        var router = express.Router();
    
        router.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' }));
    
        // etc.
    
        return router;
    };
    

    然后,app 可以 use 使用:

    var routes = require('./app/routes.js')(passport);
    app.use('/', routes);
    

    【讨论】:

    • 但是当我尝试上面的实现时,我遇到了一个新问题:Cannot GET /auth/facebook/callback?code=************** and there是没有错误信息。我该如何处理?
    • @bolerovt 我从我的帖子中剪掉了一些路线以保持简短,替换为// etc. 你复制那行还是你有router'/auth/facebook/callback' 和@987654333 @路线?
    • 恐怕是的......现在我回到原来的错误:阅读 ETIMEDOUT......我完全不知道那里发生了什么......对不起,伙计
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2019-08-27
    • 2015-07-01
    • 2015-04-18
    相关资源
    最近更新 更多