2017-02-13 1 views
0

다음과 같이 웹 사이트를 구축하려고합니다. - 게시 명령을 사용하여 게시 명령을 사용하여 사용자 이름과 암호를 서버로 보냅니다. - 세부 정보가 정상이면 서버는로드 할 다른 웹 페이지를 보냅니다. - 그렇지 않으면 오류 메시지가 표시됩니다.성공 로그인시 페이지를로드하거나 오류 메시지를 표시하는 방법은 무엇입니까?

클라이언트 측 (HTML & JQuery와)

$(document).ready(function() 
      { 
       $("#loginButton").click(function() 
       {  
        var username = $("input#username").val(); 
        var password = $("#password").val();      
        $.post("/login", { userName: username, pass: password }) 
         .done(function(data) { 
         $("#loginResult").text(data); 
         }); 
       }); 
      }); 

서버 측 (NodeJs) : 세부 사항이 잘못된 경우 경우

app.post("/login", function(req, res) { 

    var userName = req.body.userName; 
    var pass = req.body.pass; 

    if(req.body.userName && req.body.pass) 
    { 
     db.collection("customers").findOne({first_name:userName}, function(err, doc) 
     { 
      if(doc) { 
      res.sendFile('userPage.html', {root: __dirname }) 
      } 
      else { 
      res.send('ERR') 
      } 
     }); 
    } 
    else 
    {  
     res.send('ERR') 
    } 

}); 

, 나는, 오류 메시지, 를 볼 수 있지만, 세부 정보는 정상이며 새 페이지 (userPage.html)가로드되지 않습니다. 1. 이유가 무엇입니까? 2. 로그인 프로세스를 수행하는 올바른 방법입니까?

답변

0

이론적으로, 응용 프로그램의 루트 디렉토리에 'userPage.html'이라는 파일이 있고 사용자가 mongo 작업이 성공한 것처럼 이론적으로 소리가 들리면이 파일의 내용을 아약스 호출로 반환하고 요소의 마크 업은 텍스트로 삽입되어야합니다. 디버깅을 시도해보십시오. 코드가 얼마나 멀리 떨어져 있는지 확인하고 추가 도움이 필요하면 서버에서 오류가 발생하는지 알려주십시오.

그러나 인증 방법은 절대적으로 아닙니다. 전나무 당신은 자신의 로그인 및 등록 알고리즘을 설정하지 않도록해야합니다. 고려해야 할 것이 너무 많습니다. 그리고 그들 중 일부는 이미 잘못 읽은 것입니다. 암호를 일반 텍스트로 저장하고 있습니다. 나는 "passportjs"를 사용할 것이고, 많은 훌륭한 튜토리얼이 온라인에있다. 이것처럼 : https://scotch.io/tutorials/easy-node-authentication-setup-and-local 앱에서 실제로 사용하는 법을 배울 수있는

비동기 호출을 할 경우 프론트 엔드는 다른 페이지로 이동하지 말아야한다는 것을 의미합니다. 실제로 페이지를 보내지 만 오히려 응답을 보냅니다. 로그인 한 후 페이지로 리디렉션하려는 경우 위의 자습서와 같은 게시 조치가있는 양식 만 있으면됩니다.

관련 문제