我想检查数据库中的用户名和密码是否正确。 为此我做了一个javascript函数。
function checkLogin() {
username = (document.getElementById('login').value
password = document.getElementById('password').value)
if (username == db.Membership.select(username)){
alert("it exists")
因此,每当有人在输入详细信息后单击“登录”时,就会调用此函数。是否可以检查用户名和密码是否正确?
答案 0 :(得分:0)
在web2py中,db.Membership.select(username)
是Python代码,必须在模型或控制器(或模块)中的服务器上运行 - 它不是Javascript,不能在浏览器中运行。
此外,简单地在浏览器中检查用户的登录凭据是否有效是没有意义的,因为(a)您需要在服务器上知道用户是否已登录(以便控制对功能和服务器上的资源)和(b)攻击者只需在浏览器控制台中运行一些Javascript就可以伪造有效的登录信息。
在web2py中,用户的登录状态存储在会话中,该会话存储在服务器上(在文件或数据库中)或加密和签名的cookie(不能从客户端更改) 。身份验证本身必须在服务器上进行(因此不能伪造)。
如果要登录用户,则应使用标准登录机制。如果您希望通过Ajax处理登录提交,您可以将凭据发布到web2py控制器功能,并且在控制器中,您可以调用auth.login_bare(username, password)
,这将登录用户(即更新会话)如果登录失败,则表示登录)或返回False
。