def do_GET(self): global REQUEST_TOKEN params = cgi.parse_qs(self.path.split('?', 1)[1], keep_blank_values=False) REQUEST_TOKEN = OAuthToken(params['oauth_token'][0], params['oauth_token_secret'][0]) REQUEST_TOKEN.set_verifier(params['oauth_verifier'][0]) self.send_response(200) self.send_header('Content-Type', 'text/plain') self.end_headers() self.wfile.write('OAuth request token fetched; you can close this window.')
def get_request_token(): global REQUEST_TOKEN client = TestOAuthClient(SERVER_URL, CONSUMER_KEY, CONSUMER_SECRET) client.start_fetch_request_token() print "After logging in and authorizing, input token key and secret..." request_token_key = raw_input("request token: ") request_token_secret = raw_input("request token secret: ") REQUEST_TOKEN = OAuthToken(request_token_key, request_token_secret)
def oauth_callback(): oauth_token = request.args.get('oauth_token', '') oauth_secret = request.args.get('oauth_token_secret', '') oauth_verifier = request.args.get('oauth_verifier', '') request_token = OAuthToken(oauth_token, oauth_secret) request_token.set_verifier(oauth_verifier) session['request_token'] = request_token # We do this before we redirect so that there's no "limbo" state where the # user has a request token but no access token. access_token = CLIENT.fetch_access_token(request_token) session['oauth_token_string'] = access_token.to_string() # We're done authenticating, and the credentials are now stored in the # session. We can redirect back home. return redirect(url_for('.index'))
def finish_auth(request): """ Step 2 of the oauth authentication: use the REQUEST_TOKEN to get an ACCESS_TOKEN """ params = request.GET try: request.session["REQUEST_TOKEN"] = OAuthToken(params['oauth_token'], params['oauth_token_secret']) request.session["REQUEST_TOKEN"].set_verifier(params['oauth_verifier']) except MultiValueDictKeyError as e: # we just want to generate a 500 anyway; # nothing we could do here except give a slightly more meaningful error raise e logging.debug("Getting access token.") client = TestOAuthClient(KHAN_SERVER_URL, settings.KHAN_API_CONSUMER_KEY, settings.KHAN_API_CONSUMER_SECRET) request.session["ACCESS_TOKEN"] = client.fetch_access_token(request.session["REQUEST_TOKEN"]) if not request.session["ACCESS_TOKEN"]: raise Exception("Did not get access token.") return request.session["ACCESS_TOKEN"]
def get_access_token_from_user(): client = TestOAuthClient(consts.SERVER_URL, consts.CONSUMER_KEY, consts.CONSUMER_SECRET) client.start_fetch_request_token() print "After logging in and authorizing, input token key and secret..." request_token_key = raw_input("request token: ") request_token_secret = raw_input("request token secret: ") request_token = OAuthToken(request_token_key, request_token_secret) if not request_token: raise IOError("Did not get request token.") print "Fetching access token..." access_token = client.fetch_access_token(request_token) if not access_token: raise IOError("Did not get access token.") return access_token