如何将配置的护照对象传递到Express4中的路由模块?

 mobiledu2502858037 发布于 2022-12-07 14:16

从快递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中的路由模块?

1 个回答
  • function出口仍然可以用于传递passport的模块之间的参考.它只是创建和return一个Router而不是修改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);
    

    2022-12-11 02:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有