def post(self): email = self.get_argument("email", "") password = self.get_argument("password", "") user_manager = UserManager() user = user_manager.get_by_local_account(email) if user is not None: if user_manager.authenticate(user, password): userid = str(user["uid"]) self.set_secure_cookie("user", userid) self.redirect(self.get_argument("next", "/")) return self.get()
def _on_auth(self, user): if not user: raise tornado.web.HTTPError(500, "Google auth failed") user_manager = UserManager() author = user_manager.get_by_google_account(user["email"]) if author is None: author = user_manager.create(user["email"], user["name"], {"google": user}) else: user_manager.refresh(author["uid"]) authorid = str(author["uid"]) self.set_secure_cookie("user", authorid) self.redirect(self.get_argument("next", "/"))
def post(self): name = self.get_argument('name', "") email = self.get_argument('email', "") password = self.get_argument('password', "") password2 = self.get_argument('password2', "") error = [] user_manager = UserManager() if password != password2: self.form["password2"].error = True error.append("密码不匹配") if len(password) < 8: self.form["password"].error = True error.append("密码长度不够") if len(name) < 3: self.form["name"].error = True error.append("昵称太短") if len(email) < 6 or "@" not in email: self.form["email"].error = True error.append("Email格式不正确") elif user_manager.get_by_local_account(email): self.form["email"].error = True error.append(u"%s 电子邮件已经有人注册过了" % email) if error: self.form["name"].value = name self.form["email"].value = email self.render("accounts/signup.html", form=self.form, errors=error) else: account = { "name": name, "email": email, "password": user_manager.hash_password(password), } user = user_manager.create(email, name, {"local": account}) userid = str(user["uid"]) self.set_secure_cookie("user", userid) self.redirect(self.get_argument("next", "/"))