示例#1
0
def login(req):
    email = req.get_form_var("email", '').rstrip()
    if req.get_method() == 'POST':
        password = req.get_form_var("password", '')
        error = None
        if not is_validate_email(email):
            error = "请输入合法的邮箱"
        if not password:
            error = "请输入密码"
        elif len(password) < 4 or not password.isalnum():
            error = "密码请用长于4位的字母数字组合"
        if not error:
            u = User.get_by_email(email)
            if req.get_form_var("login", None):
                if not u:
                    error = "该邮箱还未注册"
                else:
                    u = User.login(email, password)
                    if u:
                        set_session(req, u)
                        return req.redirect("/")
                    else:
                        error = "邮箱和密码不匹配"
            elif req.get_form_var("register", None):
                if u:
                    error = "该邮箱已经注册,请直接登录"
                else:
                    u = User.register(email, password)
                    if u:
                        set_session(req, u)
                        return req.redirect("/")
                    else:
                        error = "注册失败..."
    return st("/login.html", **locals())