예제 #1
0
파일: auth.py 프로젝트: ayang/diding
 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()
예제 #2
0
파일: auth.py 프로젝트: ayang/diding
 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", "/"))
예제 #3
0
파일: accounts.py 프로젝트: ayang/diding
 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", "/"))