2014-10-24 4 views
0

데이터베이스에있는 사용자 이름과 암호가 올바른지 확인하고 싶습니다. 이것을 위해 나는 자바 스크립트 함수를 만들었다.web2py에서 사용자 이름과 비밀번호가 올바른지 확인하는 방법은 무엇입니까?

function checkLogin() { 
      username = (document.getElementById('login').value 
      password = document.getElementById('password').value) 

      if (username == db.Membership.select(username)){ 

       alert("it exists") 

그래서이 기능은 누군가가 세부 정보를 입력 한 후 로그인 할 때마다 호출됩니다. 사용자 이름과 비밀번호가 맞는지 확인할 수 있습니까?

답변

0

web2py에서 db.Membership.select(username)은 Python 코드이며 모델 또는 컨트롤러 (또는 모듈)의 서버에서 실행해야합니다. 이는 자바 스크립트가 아니며 브라우저에서 실행할 수 없습니다.

또한 브라우저에서 사용자의 로그인 자격 증명이 유효한지 여부를 확인하는 것은 의미가 없습니다. 그 이유는 (a) 사용자가 로그인했는지 여부를 서버에서 알아야하기 때문입니다 (기능에 대한 액세스를 제어하기 위해 (b) 공격자는 브라우저 콘솔에서 Javascript를 실행하여 유효한 로그인을 위장 할 수 있습니다.

web2py에서 사용자의 로그인 상태는 서버 (파일 또는 데이터베이스) 또는 암호화되고 서명 된 쿠키 (클라이언트 측에서 변경할 수 없음)에 저장된 세션에 저장됩니다). 인증 자체는 서버에서 발생해야합니다 (따라서 위조 될 수는 없습니다).

사용자를 로그인하려면 표준 로그인 메커니즘을 사용해야합니다. Ajax를 통해 로그인 제출을 처리하려면 web2py 컨트롤러 기능에 자격 증명을 게시하고 컨트롤러에 auth.login_bare(username, password)으로 전화를 걸면 사용자가 로그인합니다 (즉, 로그인을 나타 내기 위해 세션을 업데이트 함) 로그인에 실패하면 False을 반환하십시오.

관련 문제