How do I develop against OAuth locally?

后端 未结 7 815
孤独总比滥情好
孤独总比滥情好 2020-12-08 02:38

I\'m building a Python application that needs to communicate with an OAuth service provider. The SP requires me to specify a callback URL. Specifying localhost obviously

相关标签:
7条回答
  • 2020-12-08 03:29

    So how I solved this issue (using BitBucket's OAuth interface) was by specifying the callback URL to localhost (or whatever the hell you want really), and then following the authorisation URL with curl, but with the twist of only returning the HTTP header. Example:

    curl --user BitbucketUsername:BitbucketPassword -sL -w "%{http_code} %{url_effective}\\n" "AUTH_URL" -o /dev/null
    

    Inserting for your credentials and the authorisation url (remember to escape the exclamation mark!).

    What you should get is something like this:

    200 http://localhost?dump&oauth_verifier=OATH_VERIFIER&oauth_token=OATH_TOKEN
    

    And you can scrape the oath_verifier from this.

    Doing the same in python:

    import pycurl
    devnull = open('/dev/null', 'w')
    c = pycurl.Curl()
    
    c.setopt(pycurl.WRITEFUNCTION, devnull.write)
    c.setopt(c.USERPWD, "BBUSERNAME:BBPASSWORD")
    c.setopt(pycurl.URL, authorize_url)
    c.setopt(pycurl.FOLLOWLOCATION, 1) 
    c.perform()
    
    print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
    

    I hope this is useful for someone!

    0 讨论(0)
提交回复
热议问题