如何检查web2py中的用户名和密码是否正确?

时间:2014-10-24 12:41:25

标签: javascript web2py

我想检查数据库中的用户名和密码是否正确。 为此我做了一个javascript函数。

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

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

               alert("it exists")

因此,每当有人在输入详细信息后单击“登录”时,就会调用此函数。是否可以检查用户名和密码是否正确?

1 个答案:

答案 0 :(得分:0)

在web2py中,db.Membership.select(username)是Python代码,必须在模型或控制器(或模块)中的服务器上运行 - 它不是Javascript,不能在浏览器中运行。

此外,简单地在浏览器中检查用户的登录凭据是否有效是没有意义的,因为(a)您需要在服务器上知道用户是否已登录(以便控制对功能和服务器上的资源)和(b)攻击者只需在浏览器控制台中运行一些Javascript就可以伪造有效的登录信息。

在web2py中,用户的登录状态存储在会话中,该会话存储在服务器上(在文件或数据库中)或加密和签名的cookie(不能从客户端更改) 。身份验证本身必须在服务器上进行(因此不能伪造)。

如果要登录用户,则应使用标准登录机制。如果您希望通过Ajax处理登录提交,您可以将凭据发布到web2py控制器功能,并且在控制器中,您可以调用auth.login_bare(username, password),这将登录用户(即更新会话)如果登录失败,则表示登录)或返回False