Beispiel #1
0
def callback():
    '''用户成功登录授权后,会回调此方法,获取access_token,完成授权'''
    verifier = request.args.get('oauth_verifier', None)
    # 设置之前保存在session的request_token
    if 'oauth_request_token' in session:
        request_token = session['oauth_request_token']
        del session['oauth_request_token']
    else:
        return render_template('index.html')

    auth_client.set_request_token(request_token.key, request_token.secret)
    access_token = auth_client.get_access_token(verifier)
    at_key = access_token.key
    at_secret = access_token.secret
    #设定用户令牌密钥
    auth_client.setToken(at_key, at_secret)
    #绑定用户验证信息.
    api = API(auth_client)
    #获取微博信息
    weibo = api.verify_credentials()
    if weibo is False or weibo is None:
        flash(u'杯具啊,你木有开通微博吧(⊙﹏⊙)a', 'error')
        return render_template('index.html')

    #记录用户登录信息,更新用户微博资料
    User.login(weibo=weibo)
    Weibo.set(weibo=weibo, at_key=at_key, at_secret=at_secret)
    #设置session
    session['id'] = weibo.id
    session.permanent = True
    # 跳转回最初登录前的页面
    back_to_url = session.get('login_back_to_url', '/')
    return redirect(back_to_url)
Beispiel #2
0
def callback():
    '''用户成功登录授权后,会回调此方法,获取access_token,完成授权'''
    verifier = request.args.get('oauth_verifier', None)
    # 设置之前保存在session的request_token
    if 'oauth_request_token' in session:
        request_token = session['oauth_request_token']
        del session['oauth_request_token']
    else:
        return render_template('index.html')

    auth_client.set_request_token(request_token.key, request_token.secret)
    access_token = auth_client.get_access_token(verifier)
    at_key = access_token.key
    at_secret = access_token.secret
    #设定用户令牌密钥
    auth_client.setToken( at_key, at_secret )
    #绑定用户验证信息.
    api = API(auth_client)
    #获取微博信息
    weibo = api.verify_credentials()
    if weibo is False or weibo is None:
        flash(u'杯具啊,你木有开通微博吧(⊙﹏⊙)a', 'error')
        return render_template('index.html')

    #记录用户登录信息,更新用户微博资料
    User.login(weibo=weibo)
    Weibo.set(weibo=weibo, at_key=at_key, at_secret=at_secret)
    #设置session
    session['id'] = weibo.id
    session.permanent = True
    # 跳转回最初登录前的页面
    back_to_url = session.get('login_back_to_url', '/')
    return redirect(back_to_url)
Beispiel #3
0
    def api_verify(*args, **kwargs):
        if g.api:
            return func(*args, **kwargs)
        else:
            if g.weibo:
                if g.weibo.at_key and g.weibo.at_secret:
                    auth_client.setToken(g.weibo.at_key, g.weibo.at_secret)
                    api = API(auth_client)
                    weibo = api.verify_credentials()
                    if weibo:
                        g.api = api
                        return func(*args, **kwargs)

        if 'id' in session:
            del session['id']
            session.permanent = False
        g.user = None
        g.weibo = None
        return render_template('errors/need_api.html')
Beispiel #4
0
 def api_verify(*args, **kwargs):
     if g.api:
         return func(*args, **kwargs)
     else:
         if g.weibo:
             if g.weibo.at_key and g.weibo.at_secret:
                 auth_client.setToken(g.weibo.at_key, g.weibo.at_secret)
                 api =  API(auth_client)
                 weibo = api.verify_credentials()
                 if weibo:
                     g.api = api
                     return func(*args, **kwargs)
  
     if 'id' in session:
         del session['id']
         session.permanent = False
     g.user = None
     g.weibo = None
     return render_template('errors/need_api.html')