def post(self): screen_name = self.get_argument("screen_name", '') intro = self.get_argument("intro", '') port = self.get_argument("port", None) access_token = self.profiles.weibo_access_token if not access_token: raise HTTPError(500, "Weibo access_token not found") if 0<len(screen_name)<72 and 0<len(intro)<192: if port == "weibo": request_url = self._OAUTH_USER_INFO_URL + "?" + urlencode({"access_token":access_token, "screen_name":screen_name.encode("utf-8")}) http_client = AsyncHTTPClient() http_client.fetch(request_url, callback=(yield gen.Callback("resp"))) response = yield gen.Wait("resp") if response.code == 200: content = json.loads(response.body) username = "******" %(content.get("screen_name"), port) member = Member.getMemberByOAuth2ID(str(content.get("id")), port) if member: member.has_fetcher = "suspend" member.task_intro = intro member.save() else: member = Member.create( username=username, nickname=content.get("screen_name"), port=port, oauth_id=str(content.get("id")), has_fetcher="suspend", task_intro=intro, oauth_info={ "description": content.get("description").encode("utf-8"), "province": content.get("province"), "city": content.get("city"), "location": content.get("location"), "profile_image_url": content.get("profile_image_url"), }, created=datetime.now(), modified=datetime.now() ) self.finishedMsg(status="success", info="submit success") else: self.finishedMsg(status="error", info="could not connect to weibo api") else: self.finishedMsg(status="error", info="others ports not supported") else: self.finishedMsg(start="error", info="argument error")
def _on_auth(self, user): next = self.get_argument("next", self.prefix_url) if not user: raise HTTPError(500, "Weibo auth failed") else: user['oauth_info'].update(description=striping(user['oauth_info']['description'], 0, 35)) member = Member.getObject(oauth_id=user["oauth_id"], port="weibo") if member: member.access_token = user["access_token"] member.oauth_info.update(user["oauth_info"]) member.save() else: user.update(created=datetime.now()) user.update(modified=datetime.now()) member = Member.create(**user) self.session["logined"] = True self.session["mid"] = member.mid self.session.save() cookie_string = self.dumpsJson(logined=True, mid=member.mid) self.set_secure_cookie(self.cookie_name, cookie_string) self.redirect(next)
def post(self): data = self.request.body form_data = json.loads(data) regist_id = form_data["regist_id"] regist_dict = self.mc.get(str(regist_id)) if regist_dict: email = regist_dict["email"] username = form_data["username"] password = form_data["password"] repeat = form_data["repeat"] if password==repeat: is_existed = Member.getMemberByEmailAndUsername(email, username) if is_existed: self.finishedMsg(status="error", info="email or username existed") else: if (time.time() - regist_dict["timestamp"]) < 300: is_saved = Member.create( email = email, username = username, password = getSha1(password), created = datetime.now(), modified = datetime.now(), is_enabled = True ) if is_saved: del self.mc[regist_id] self.finishedMsg(status="success", info="regist success") else: self.finishedMsg(status="error", info="error when save record") else: self.finishedMsg(status="error", info="regist code expired") else: self.finishedMsg(status="error", info="password not matched") else: self.finishedMsg(status="error", info="regist_id not found")