Javascript node js博客,隐藏内容(针对未登录用户)
我正在node.js中处理一个博客,我需要知道是否有办法为未登录的用户隐藏内容,如“编辑”、“删除”和“新建帖子”按钮?我可以将“来宾”重定向到没有这些按钮的页面,但这似乎有点愚蠢。这是我找到的一个登录方法,它可以工作,但是如何使用这个'req.session.user=username;'以一种好的方式Javascript node js博客,隐藏内容(针对未登录用户),javascript,node.js,express,pug,stylus,Javascript,Node.js,Express,Pug,Stylus,我正在node.js中处理一个博客,我需要知道是否有办法为未登录的用户隐藏内容,如“编辑”、“删除”和“新建帖子”按钮?我可以将“来宾”重定向到没有这些按钮的页面,但这似乎有点愚蠢。这是我找到的一个登录方法,它可以工作,但是如何使用这个'req.session.user=username;'以一种好的方式 exports.login = function(req, res){ var username = req.body.username; var password = req
exports.login = function(req, res){
var username = req.body.username;
var password = req.body.password;
var hash = crypto.createHash('sha256').update(password).digest('base64');
r.connect( {host: 'localhost', port: 28015}, function(err, conn) {
if (err) throw err;
connection = conn;
r.db("app").table("user").filter({username: username, password: hash}).run(conn, function(err, cursor){
if (err) throw err;
cursor.toArray(function(err, result){
if(result.length == 0){
res.render("index", {msg: "No user with that name"})
}
else{
console.log(username);
req.session.user = username;
res.redirect("index");
//res.render("menu");
}
});
});
});
};
我在node.js中使用express、jade和stylus。
我希望你能理解,如果我需要发布更多信息,请告诉我 一种解决方案可能是在视图中使用的res.locals上设置一个标志。你可以说res.locals.loggedIn=false;如果他们已登录,则在中间件堆栈的早期某处,或者如果他们已登录,则将其设置为true,例如,存在一个会话,其中包含一些信息,表明他们以前已成功进行身份验证
然后在你看来,你只需要做一些事情,比如如果loggedIn{/*显示按钮*/}我对html/css不太擅长,比如说触控笔,代码会是什么样子,听起来很棒。。我理解'res.locals.loggedIn=false/true',但为了显示按钮,我取消了搜索。的首页显示了模板中if-else语句的示例。所以,把你在他们的例子中使用的Jade和loggedIn换掉。