示例#1
0
        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.')
示例#2
0
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)
示例#3
0
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'))
示例#4
0
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"]
示例#5
0
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