Esempio n. 1
0
    def _on_weixin_request(self, future, response):
        if response.error:
            future.set_exception(
                AuthError('Error response %s fetching %s', response.error,
                          response.request.url))
            return

        future.set_result(escape.json_decode(response.body))
Esempio n. 2
0
    def _on_access_token(self, redirect_uri, client_id, client_secret, future,
                         fields, response):
        if response.error:
            future.set_exception(
                AuthError('Weibo auth error: %s' % str(response)))
            return

        args = escape.json_decode(escape.native_str(response.body))
        session = {
            "access_token": args.get("access_token"),
            "expires_in": args.get("expires_in")
        }

        self.weibo_request(path="/users/show.json",
                           callback=functools.partial(self._on_get_user_info,
                                                      future, session, fields),
                           access_token=session["access_token"],
                           uid=args.get("uid"))
Esempio n. 3
0
    def _on_access_token(self, client_id, client_secret, future, response):

        if response.error:
            future.set_exception(
                AuthError('Weixin auth error: %s' % str(response)))
            return

        session = escape.json_decode(response.body)

        if session.get("errcode", None):
            future.set_exception(
                AuthError('Weixin auth error: %s' % str(session['errcode'])))
            return

        self.weixin_request('/userinfo',
                            callback=functools.partial(self._on_get_user_info,
                                                       future, session),
                            access_token=session['access_token'],
                            openid=session['openid'])
Esempio n. 4
0
    def _on_access_token(self, redirect_uri, client_id, client_secret, future,
                         fields, response):
        if response.error:
            future.set_exception(
                AuthError('Douban auth error %s' % str(response)))
            return

        args = escape.json_decode(escape.native_str(response.body))
        session = {
            'access_token': args['access_token'],
            'expires': args['expires_in'],
            'refresh_token': args['refresh_token'],
            'douban_user_id': args['douban_user_id'],
        }

        self.douban_request(
            path='/user/~me',
            callback=functools.partial(self._on_get_user_info, future, session,
                                       fields),
            access_token=session['access_token'],
        )
Esempio n. 5
0
    def _on_qq_request(self, future, response):
        if response.error:
            future.set_exception(AuthError("QQ认证失败,请重新"))
            return

        future.set_result(escape.json_decode(response.body))