Node.js Expressjs中受密码保护的视图
我正在尝试设置此场景: 我有一个view/quote/quoteId,但要首先访问该视图,您需要输入存储在db中的密码 我不能使用中间件,因为我需要首先知道quoteId以匹配输入的密码 最好的方法是什么 路线代码:Node.js Expressjs中受密码保护的视图,node.js,authentication,express,Node.js,Authentication,Express,我正在尝试设置此场景: 我有一个view/quote/quoteId,但要首先访问该视图,您需要输入存储在db中的密码 我不能使用中间件,因为我需要首先知道quoteId以匹配输入的密码 最好的方法是什么 路线代码: router.get('/quote/:q', /*passwordAccess,*/ function(req, res) { var quoteId = req.params.q || ''; quotes.findOne({id: quoteId}, func
router.get('/quote/:q', /*passwordAccess,*/ function(req, res) {
var quoteId = req.params.q || '';
quotes.findOne({id: quoteId}, function(err, data) {
if(err){
console.log(err);
return next();
}else if(data === null){
res.render('404', {msg: "quote not found"});
}else{
if(data.isEnabled){
res.render('quote', {quote: data});
}else{
res.render('404', {msg: "quote disabled"});
}
}
});
});
我需要将某种HTML表单的密码输入与data.access\u密码匹配
提前谢谢
我不想使用Passwport,因为我不需要会话和cookies。只是密码匹配。首先,
当您需要密码保护的页面时,应该使用POST方法而不是GET方法。尽管如此,如果您想发出如上所述的GET请求
您可以发送类似-/quote/10?pwd=mypwd的请求
你可以把你的变量放进去-
var pwd=请求参数pwd | |
希望这对你有帮助。谢谢我需要使用get,因为用户应该能够访问/quote/3138219321。该解决方案可能会起作用,但我需要用户从另一个视图的表单中输入密码。在这种情况下,您可以使用express session并将密码放入会话中。不…只需使用express session存储密码…passport集成是另一种情况…您的示例与此代码不起作用,不知道为什么:router.get'/test/:q',functionreq,res{console.logid+req.params.q;console.logpwd+req.params.pwd;};url:/test/someid?pwd=pass