Email 使用用户名或电子邮件登录web2py

Email 使用用户名或电子邮件登录web2py,email,login,web2py,Email,Login,Web2py,我使用的是web2py,目前我有一个登录表单,它包含电子邮件地址和密码。我需要能够接受用户名或电子邮件地址登录。我在这里找到了一个解决方案: 我在那里包含了代码,但是当我输入用户名而不是电子邮件时,它会给出错误消息无效电子邮件 我想,如果我知道它在哪里检查电子邮件,我也许可以修复它。非常感谢您的帮助。回答问题可能有点晚了,但我也遇到了同样的问题,我找到了解决办法: 首先,我检查输入是否是有效的电子邮件(电子邮件流),如果是,继续(快乐路径)。当输入是用户名时,我会在数据库中搜索与该用户名关联的

我使用的是web2py,目前我有一个登录表单,它包含电子邮件地址和密码。我需要能够接受用户名或电子邮件地址登录。我在这里找到了一个解决方案:

我在那里包含了代码,但是当我输入用户名而不是电子邮件时,它会给出错误消息无效电子邮件


我想,如果我知道它在哪里检查电子邮件,我也许可以修复它。非常感谢您的帮助。

回答问题可能有点晚了,但我也遇到了同样的问题,我找到了解决办法:

首先,我检查输入是否是有效的电子邮件(电子邮件流),如果是,继续(快乐路径)。当输入是用户名时,我会在数据库中搜索与该用户名关联的用户,并获取其电子邮件。之后,我会在vars和post_vars中替换电子邮件

例如:

```蟒蛇 def user():

```

if 'login' in request.args:
    if request.env.method=='POST':
        if request.vars.email and not IS_EMAIL()(request.vars.email)[1]:
            try:
                email = db(db.auth_user.username==request.vars.email).select(db.auth_user.email).first().as_dict()['email']
                request.post_vars.email = request.vars.email = email
            except:
                pass