安全的方法来检查身份验证(NodeJS/Express)

问题描述:

我想确保用户通过身份验证(当登录用户获取会话时)。安全的方法来检查身份验证(NodeJS/Express)

function isAuthenticated(req, res, next) { 

    // do any checks you want to in here 

    // CHECK THE USER STORED IN SESSION FOR A CUSTOM VARIABLE 
    // you can do this however you want with whatever variables you set up 
    if (req.user.authenticated) 
     return next(); 

    // IF A USER ISN'T LOGGED IN, THEN REDIRECT THEM SOMEWHERE 
    res.redirect('/'); 
} 
app.get('/hello', isAuthenticated, function(req, res) { 
    res.send('look at me!'); 
}); 

是否有另一种(更安全)的方式来检查用户是否通过身份验证?

使用express-session

https://github.com/expressjs/session

Psudo代码:

var expressSession = require('express-session'); 
app.use(expressSession({ secret: 'secret' })); 

//...// 
app.get('/',function(req,res){ 
    if (req.session.auth === undefined || req.session.auth === false){ 
     //handle by redirection to authentication page 
    } 
    //user is authenitcated 
}); 
+0

什么的'secret'选项? –

+0

会话通过在浏览器上设置cooky来工作。无论何时浏览重新确认,它都会将该cookie发送回服务器。 secred被用作处理cookie值的散列函数的关键字 –

+0

它是否像密码? –