繁体   English   中英

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

[英]How to check if username and password are correct in web2py?

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

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

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

               alert("it exists")

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM