使用Passport.js进行身份验证通过Nginx提供内容

时间:2014-01-21 06:12:32

标签: node.js nginx socket.io passport.js

对于我目前正在进行的项目,我决定不使用node的http服务器,并且几天来我一直在试图弄清楚如何将socket.io-passport应用程序与nginx结合起来。我理解即时通讯强制使用express(用于会话处理)。我在网上找到的所有示例都非常奇怪,总是使用节点服务器来提供静态内容而没有人用Nginx做过实际的工作示例。让我描述一下我的问题。

考虑以下代码

app.get('/home', function(reg, res){
    //check user session value, is logged in 
    if(req.user)
        res.render('dash',{
            username: req.user['member_id']//req.user array contains serializeUser data
        });
    else
        res.render('index');

});

app.get('/logout', function(req, res){

    req.logout();
    res.redirect('/home');
});

//login form submit as post

app.post('/login',
    passport.authenticate('local', {
        successRedirect: '/dashboard',
        failureRedirect: '/home'
    })
    );

app.get('/signup',routes.signup);
app.get('*', routes.index);

如何在我的js文件中指示JavaScript,以提供没有路由的静态文件?

1 个答案:

答案 0 :(得分:0)

在expressjs中,您可以使用静态中间件来提供特定文件夹中的静态内容。您无需为此指定路线。

app.use(express.static(__dirname + '/public'));

您可以访问公共文件夹localhost:portnumber / staticfile.js

中的静态文件

您可能想要为静态文件添加前缀,您可以使用:

app.use('/static', express.static(__dirname + '/public'));

您可以使用localhost访问:portnumber / static / staticfile.js

如果你想让nginx提供静态文件,你可以在nginx中创建新的vhost来通过nginx提供静态文件。 通常,nginx用作反向代理,以将端口80上的所有请求代理到node.js app。