2014-04-26 10 views
0

나는 node.js의 블로그에서 작업하고 있으며 '편집', '삭제'및 '삭제'와 같은 콘텐츠를 숨길 수있는 방법이 있는지 알아야합니다. 로그인하지 않은 사용자를위한 '새 게시물'버튼? 그 버튼이없는 페이지로 '손님'을 리디렉션 할 수는 있지만 다소 바보 같다. 이것은 내가 발견 한 로그인 방법이며, 작동하지만 어떻게이 'req.session.user = username;'을 사용합니까? 좋은 방법으로?노드 js 블로그, 콘텐츠 숨기기 (로그인하지 않은 사용자의 경우)

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"); 
       } 
      }); 
     }); 
    }); 
}; 

나는 express, jade 및 stylus로 node.js에서 작업하고 있습니다. 나는 당신이 이해하기를 희망하고, 더 이상의 정보를 게시 할 필요가 있는지 말해 주겠다!

답변

0

한 가지 해결책은보기에서 사용하는 res.locals에 플래그를 설정하는 것입니다. 로그인 한 경우 미들웨어 스택의 어느 곳에서나 초기에 res.locals.loggedIn = false;을 초기화하거나 true (예 : 이전에 성공적으로 인증되었음을 나타내는 일부 정보가있는 세션이있는 세션)으로 설정하십시오.

그런 다음보기에 당신은 그냥 HTML/CSS (옥, 스타일러스)와 큰 아니다 if (loggedIn) { /* show buttons */ }

+0

그런 짓을, 어떻게 생겼과 같은 코드 것, 그것은 큰 소리 .. 나는 '입술을 이해합니다. locals.loggedIn = false/true '이지만 확실하지 않은 버튼을 표시합니다. – user3486059

+0

[jade 's homepage] (http://jade-lang.com/)의 첫 페이지는 템플릿의 if-else 문 예를 보여줍니다. 그래서'loggedIn'을 사용하여'youAreUsingJade'를 그들의 예에서 교체하십시오. – mscdex

+0

오, 그래! 감사합니다. – user3486059

관련 문제