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
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', '/'))
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)
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'
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)
#!/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) ###完成授权.