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

时间:2014-02-19 21:27:02

标签: email login web2py username

我正在使用web2py,我目前有一个登录表单,其中包含电子邮件地址和密码。我需要能够接受用户名或电子邮件地址才能登录。我在这里找到了解决方案: http://www.web2pyslices.com/slice/show/1642/login-with-username-and-email

我在那里包含了代码,但是当我输入用户名而不是电子邮件时,它会显示错误无效的电子邮件。

我想如果我知道它在做电子邮件检查的地方,我可能能够解决它。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

答案可能为时不晚,但是我遇到了同样的问题,并且找到了解决方法:

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

例如:

```python 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

```