2014-10-24 3 views
0

Я хочу проверить правильность имени пользователя и пароля в базе данных. Для этого я сделал функцию javascript.Как проверить правильность имени пользователя и пароля в 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 и должен запускаться на сервере в модели или контроллере (или модуле) - это не Javascript и не может быть запущен в браузере.

Кроме того, нет смысла просто проверять в браузере, являются ли учетные данные пользователя действительными, поскольку (а) вам необходимо знать на сервере, является ли пользователь зарегистрирован (для контроля доступа к функциям и ресурсы на сервере), и (б) злоумышленник может просто запустить Javascript в консоли браузера, чтобы подделать действительный логин.

В web2py статус пользователя сохраняется в сеансе, который либо хранится на сервере (в файле или в базе данных), либо в зашифрованном и подписанном файле cookie (который не может быть изменен с клиентской стороны). Сама аутентификация должна произойти на сервере (поэтому ее нельзя подделать).

Если вы хотите войти в систему, вы должны использовать стандартный механизм входа в систему. Если вы хотите, чтобы вход в систему был обработан с помощью Ajax, вы можете отправить учетные данные в функцию контроллера web2py, а в контроллере вы можете позвонить auth.login_bare(username, password), который либо войдет в систему пользователя (то есть обновит сеанс, чтобы указать логин) или вернуть False, если сбой входа.

Смежные вопросы