Esempio n. 1
0
 def post(self):
     flash_messages = []
     username = self.request.POST.get("username")
     password = self.request.POST.get("password")
     if username and password:
         params = {
             "x_auth_mode": "client_auth",
             "x_auth_username": username,
             "x_auth_password": password,
         }
         api = weibo.API(self.app.config["CONSUMER_KEY"], self.app.config["CONSUMER_SECRET"])
         api.bind_auth()
         try:
             access_token = api.get_authorized_tokens(**params)
         except weibo.Error as e:
             flash_messages.append(u"XAuth错误:%s" % str(e))
         else:
             sid = crypto.encrypt("%s:%s" % (access_token["oauth_token"], access_token["oauth_token_secret"]),
                                  self.app.config["SECRET_KEY"])
             rss_url = urlparse.urljoin("http://" + self.request.host, self.uri_for("rss", sid=sid))
             self.render_response("rss.html", rss_url=rss_url)
             return
     else:
         flash_messages.append(u"缺少邮箱或密码!")
     self.render_response("login.html", flash_messages=flash_messages)
Esempio n. 2
0
 def get(self):
     flash_messages = []
     code = self.request.GET.get("code")
     if code is not None:
         r = urlfetch.fetch(
             "https://api.weibo.com/oauth2/access_token?" +
             urllib.urlencode(
                 {
                     "client_id": self.app.config["CONSUMER_KEY"],
                     "client_secret": self.app.config["CONSUMER_SECRET"],
                     "grant_type": "authorization_code",
                     "redirect_uri": self.app.config["CONSUMER_DOMAIN"],
                     "code": code,
                 }),
             method=urlfetch.POST)
         resp = json.loads(r.content)
         if "error" in resp:
             flash_messages.append(u"错误:%s" % resp["error"])
         else:
             logging.debug("access_token: %s" % resp)
             sid = crypto.encrypt(resp["access_token"],
                                  self.app.config["SECRET_KEY"])
             rss_url = urlparse.urljoin("https://" + self.request.host,
                                        self.uri_for("rss", sid=sid))
             self.render_response("rss.html", rss_url=rss_url)
             return
     self.render_response("login.html", flash_messages=flash_messages)
Esempio n. 3
0
 def get(self):
     flash_messages = []
     code = self.request.GET.get("code")
     if code is not None:
         r = urlfetch.fetch("https://api.weibo.com/oauth2/access_token?" + urllib.urlencode({
             "client_id": self.app.config["CONSUMER_KEY"],
             "client_secret": self.app.config["CONSUMER_SECRET"],
             "grant_type": "authorization_code",
             "redirect_uri": self.app.config["CONSUMER_DOMAIN"],
             "code": code,
         }), method=urlfetch.POST)
         resp = json.loads(r.content)
         if "error" in resp:
             flash_messages.append(u"错误:%s" % resp["error"])
         else:
             logging.debug("access_token: %s" % resp)
             sid = crypto.encrypt(resp["access_token"], self.app.config["SECRET_KEY"])
             rss_url = urlparse.urljoin("https://" + self.request.host, self.uri_for("rss", sid=sid))
             self.render_response("rss.html", rss_url=rss_url)
             return
     self.render_response("login.html", flash_messages=flash_messages)
Esempio n. 4
0
def md5hash(url):
    m = hashlib.md5()
    m.update(crypto.encrypt(url, webapp2.get_app().config["SECRET_KEY"]))
    return m.hexdigest()