Ejemplo n.º 1
0
def verify(user_name,server_user_name,verify,server_user_pix='timger',server_name='sina',callback='/login',consumer_key=_conf.consumer_key,consumer_secret=_conf.consumer_secret,):
    
    import sys 
    sys.path.append(os.path.join(DIR_PATH,'../'))
    from db import * 
    res = {}
    #sdb = session.query(TWDBS).filter_by(TWDBS.consumer_key==consumer_key,TWDBS.consumer_secret==consumer_secret,TWDBS.user_name==user_name,TWDBS.server_user_name==server_user_name,TWDBS.server_name==server).all()[-1]
    sdb = session.query(TWDBS).filter(and_(TWDBS.consumer_key==consumer_key,TWDBS.consumer_secret==consumer_secret,TWDBS.user_name==user_name,TWDBS.server_user_name==server_user_name,TWDBS.server_name==server_name)).all()
    print sdb
    sdb=sdb[-1]
    o = OAuthHandler(consumer_key=consumer_key, consumer_secret=consumer_secret,callback=callback)
    request_token_sercet,request_token_key = [ i.split('=')[1]  for i in sdb.request_token.split('&')]
    #o.request_token = oauth.OAuthToken(request_token_key,request_token_sercet)
    print sdb.request_token
    print request_token_key,'\n',request_token_sercet
    o.set_request_token(request_token_key,request_token_sercet)
    #try:
    access_token = o.get_access_token(verify)
    sdb.access_token_key = access_token.key
    sdb.access_token_secret = access_token.secret
    sdb.access_token = access_token.to_string()
    #    res['status'] = True
    #except:
    #    res['status'] = False
    session.flush()
    session.commit()
    session.close()
    return res
Ejemplo n.º 2
0
def login_callback():
    # This is called by the provider when user has granted permission to your app
    verifier = request.args.get('oauth_verifier', None)
    auth = OAuthHandler(consumer_key, consumer_secret)
    request_token = session['oauth_request_token']
    del session['oauth_request_token']

    # Show the provider it's us really
    auth.set_request_token(request_token.key, request_token.secret)
    # Ask for a temporary access token
    session['oauth_access_token'] = auth.get_access_token(verifier)
    return redirect(session.get('login_ok_url', '/'))
Ejemplo n.º 3
0
def login_callback():
    # This is called by the provider when user has granted permission to your app
    verifier = request.args.get('oauth_verifier', None)
    auth = OAuthHandler(consumer_key, consumer_secret)
    request_token = session['oauth_request_token']
    del session['oauth_request_token']
    
    # Show the provider it's us really
    auth.set_request_token(request_token.key, request_token.secret)
    # Ask for a temporary access token
    session['oauth_access_token'] = auth.get_access_token(verifier)
    return redirect(session.get('login_ok_url', '/'))
Ejemplo n.º 4
0
def check_user_login_sina(request):
    try:
        oauth_verifier = request.GET.get('oauth_verifier', None)
        request_token = request.session.get('oauth_request_token', None)
        request.session['oauth_request_token'] = None

        auth = OAuthHandler(consumer_key, consumer_secret)

        auth.request_token = request_token
        access_token = auth.get_access_token(oauth_verifier)

        request.session['oauth_access_token'] = access_token

        api = API(auth)
        sina_user = api.me()

        user_in_session = request.session.get('user', None)
        isnewuser = False
        if user_in_session == None:
            user, isnewuser = UserService().getorCreateCoolUserBySinaUser(
                sina_user)
            user = UserService().getUser(user)
        else:
            errormessage = UserService().updateSinaID(user_in_session,
                                                      sina_user)
            if errormessage:
                request.session['errormessage'] = errormessage
            user = UserService().getUser(user_in_session)

        request.session['user'] = user
        newmessagecount = UserService().getMessageCount({'isread': False},
                                                        user)
        user.newmessagecount = newmessagecount
        UserService().updateCoolUser(user)

        if isnewuser:
            back_to_url = '/setting'
        else:
            back_to_url = request.session.get('login_back_to_url', '/')

        return HttpResponseRedirect(back_to_url)
    except WeibopError:
        errormessage = ugettext(
            'Auth sina twitter account failed, please retry.')
        request.session['errormessage'] = errormessage
        return login(request)
Ejemplo n.º 5
0
def main():
    c = get_conf()
    o = OAuthHandler(c['consumer_key'], c['consumer_secret'])
    c['authorization_url'] = o.get_authorization_url()
    c['request_token'] = o.request_token
    print c['authorization_url']
    verifier = raw_input('click the url above, then input the verifier: ')
    verifier = verifier.strip()
    c['verifier'] = verifier
    try:
        access_token = o.get_access_token(verifier)
        c['access_token_key'] = access_token.key
        c['access_token_secret'] = access_token.secret
        c['access_token'] = access_token.to_string()
        set_conf(c)
        print 'oauth succeeded'
    except:
        print 'oauth failed'
Ejemplo n.º 6
0
def main():
    c = get_conf()
    o = OAuthHandler(c['consumer_key'], c['consumer_secret'])
    c['authorization_url'] = o.get_authorization_url()
    c['request_token'] = o.request_token
    print c['authorization_url']
    verifier = raw_input('click the url above, then input the verifier: ')
    verifier = verifier.strip()
    c['verifier'] = verifier
    try:
        access_token = o.get_access_token(verifier)
        c['access_token_key'] = access_token.key
        c['access_token_secret'] = access_token.secret
        c['access_token'] = access_token.to_string()
        set_conf(c)
        print 'oauth succeeded'
    except:
        print 'oauth failed'
Ejemplo n.º 7
0
def check_user_login_sina(request):
    try:
        oauth_verifier = request.GET.get('oauth_verifier', None)
        request_token = request.session.get('oauth_request_token', None)
        request.session['oauth_request_token'] = None
        
        auth=OAuthHandler(consumer_key, consumer_secret)
        
        auth.request_token=request_token
        access_token=auth.get_access_token(oauth_verifier)
    
        request.session['oauth_access_token'] = access_token
        
        api = API(auth)
        sina_user = api.me()
        
        user_in_session = request.session.get('user', None)
        isnewuser = False
        if user_in_session == None:
            user, isnewuser = UserService().getorCreateCoolUserBySinaUser(sina_user)
            user = UserService().getUser(user)
        else:
            errormessage = UserService().updateSinaID(user_in_session, sina_user)      
            if errormessage:
                request.session['errormessage'] = errormessage      
            user = UserService().getUser(user_in_session)
            
        request.session['user'] = user
        newmessagecount = UserService().getMessageCount({'isread':False}, user)
        user.newmessagecount = newmessagecount
        UserService().updateCoolUser(user)
        
        if isnewuser:
            back_to_url = '/setting'
        else:
            back_to_url = request.session.get('login_back_to_url', '/')
        
        return HttpResponseRedirect(back_to_url)
    except WeibopError:
        errormessage = ugettext('Auth sina twitter account failed, please retry.')
        request.session['errormessage'] = errormessage
        return login(request)
Ejemplo n.º 8
0
#!/usr/bin/python 
#-*- coding: utf-8 -*-
 
#-------------------------------------------------------
#Var
#-------------------------------------------------------
###AppInfo
APP_KEY = "3786122414"
APP_SECRET = "3f0d9e2f3ae7f117755971dc358f7b5b"
#-------------------------------------------------------
 
from weibopy import OAuthHandler, oauth, WeibopError
 
###获得应用的token
auth = OAuthHandler(APP_KEY, APP_SECRET)
###获得用户OAuth登录的url
auth_url = auth.get_authorization_url()
print "Please Auth: "+auth_url
verifier = raw_input("PIN: ").strip()
access_token = auth.get_access_token(verifier)
###获得access_token
 
###发布微博
api = API(auth)
status = api.update_status(status="Hello World")
 
###获得access_token后,以后便可以通过
###auth.set_access_token(access_token.key, access_token.secret)
###完成授权.