我不知道如何使用passport-local-mongoose插件

时间:2013-09-20 17:34:50

标签: node.js mongodb mongoose passport.js

这是我的app.js中的一些代码:

app.get('/clientes', clientes.index);
app.post('/clientes/create', clientes.create);
app.get('/clientes/add', clientes.add);
app.get('/clientes/destroy/:id', clientes.destroy);
app.get('/clientes/show/:id', clientes.show)
app.get('/clientes/edit/:id', clientes.edit);
app.post('/clientes/update/:id', clientes.update);
app.post('/clientes/list', clientes.list);
    // Login
app.get('/login', function(req, res) {
        res.render('login', { user : req.user });
    });
app.post('/login', passport.authenticate('local'), function(req, res) {
        res.redirect('/');
    });

登录有效,如果我输入正确的用户并将重定向传递给/如果不是UNAUTORIZED,但是如果用户是认可的,我怎么知道所有的app.gets?

我试试这个:

app.get('/clientes', passport.authenticate ( "local" ) ,clientes.index);

cliente.index是app / controllers / clientes.js文件中的控制器

但不起作用

我希望用户需要在所有路由中进行身份验证。

thaks。

2 个答案:

答案 0 :(得分:1)

现在正在努力。我告诉你:

第一

function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated()) { return next(); }
  res.redirect('/login');
}

a then:

app.get('/clientes', ensureAutenticated, clientes.index)

答案 1 :(得分:0)

我使用connect-ensure-login帮助我确保用户已为每个get请求登录。看起来就像你想要做的那样。