2013-09-08 6 views
0

나는 사용자가 이름/패스를 사용하여 인증 할 수 있도록 관리했습니다. 내가 달성하고자하는 것은 비활성화 된 드롭 다운으로, 그가 인증을하면 활성화되고 드롭 다운 목록을 통해 파일에 액세스 할 수 있습니다. 내가 할 수 있었던 모든 것들이 제가 당황한 한 가지는 그가 이미 인증을 받았는지 여부를 어떻게 확인할 수 있습니까? 따라서 아무도 HTML 코드를 검사하지 않고 파일에 액세스 할 수 있습니다.노드 및 익스프레스 + jQuery : 세션 저장을 인증 한 후

클라이언트 (jQuery)가 인증되었는지 여부를 확인하는 방법이 필요합니다. 세션 변수는 페이지를 닫을 때 종료됩니다.

EDIT : 보안이 필요합니다. 클라이언트가 모든 로그 파일을 볼 수 있도록 부울을 저장하고 싶습니다.

+0

클라이언트 측의 특성에 따라 다릅니다. 다 역동적입니까? 사용자가 인증하면 그는 ajax 또는 전체 페이지 제출을 통해 인증을 수행합니까? – deitch

+0

jQuery ajax, ajax는 name/pass와 함께 게시물을 보낸 다음 노드가 확인하고 노드가 로그인 할 수 있는지 여부를 반환합니다. – user2740466

+0

좋습니다. 문제는 "사용자가 로그인 했습니까?" 브라우저 측에서 열려있는 창문의 수명 전체에 걸쳐 지식 상태가 유지됩니까? – deitch

답변

1

Express 세션에서이 부울을 저장하고 클라이언트에 보낼 페이지를 선택하십시오.

// enable session support 
app.use(express.cookieParser()); 
app.use(express.session({ 
    secret: 'secret key for signed cookies' 
})); 

app.get('/foo', function(req, res) { 
    req.session.authenticated = true; 
}); 

app.get('/bar', function(req, res) { 
    if (req.session.authenticated) { 
    // send page with files 
    } else { 
    // send page without files 
    } 
}); 
+0

안전합니까? 어떻게 편집/해킹 될 수 있습니까? 클라이언트가 모든 것에 액세스 할 수있는 부울 값을 저장하려고합니다. 또한, 비밀 키가 무엇입니까? – user2740466

+0

인터넷에 뭔가가있는 경우 해킹 가능합니다. 하지만 네, 세션은 안전하고, 비밀 키는 서명 된 쿠키를위한 것입니다. – hexacyanide

+0

아무도 그 값을 수정할 수 없습니까? – user2740466

관련 문제