Skip to content
This repository

foauth.org makes OAuth optional.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 blog
Octocat-spinner-32 foauth
Octocat-spinner-32 services
Octocat-spinner-32 static
Octocat-spinner-32 templates
Octocat-spinner-32 tests
Octocat-spinner-32 LICENSE
Octocat-spinner-32 Procfile
Octocat-spinner-32 README.rst
Octocat-spinner-32 config.py
Octocat-spinner-32 forms.py
Octocat-spinner-32 models.py
Octocat-spinner-32 pelican.conf.py
Octocat-spinner-32 requirements.txt
Octocat-spinner-32 setup.py
Octocat-spinner-32 web.py
README.rst

foauth.org: OAuth for one

OAuth is a great idea for interaction between big sites with lots of users. But, as one of those users, it's a pretty terrible way to get at your own data. That's where foauth.org comes in, giving you access to these services using HTTP Basic, which is easily available in hundreds of existing tools, such as requests

>>> import requests
>>> auth = 'email@example.com', 'password'
>>> data = {'status': "Just signed up with http://foauth.org/ and it's awesome! Thanks @Gulopine!"}
>>> requests.post('https://foauth.org/api.twitter.com/1/statuses/update.json', data=data, auth=auth)
>>> r = requests.get('https://foauth.org/api.twitter.com/1/statuses/user_timeline.json', auth=auth)
>>> r.json[0]['text']
"Just signed up with http://foauth.org/ and it's awesome! Thanks @Gulopine!"

Implementation

foauth.org uses the OAuth support from requests (powered by oauthlib) to handle the OAuth signatures, behind Flask for interacting with users. Currently, requests and oauthlib only fully support OAuth 1.0, so the current crop of supported providers only includes those that use 1.0. Once requests and oauthlib land full support for OAuth 2.0, another list of providers can be added as well.

Providers themselves are implemented as Python classes that inherit from base OAuth support. This means that new providers can be requested and added using GitHub's pull requests. Documentation for how to define these provider classes is still forthcoming.

Something went wrong with that request. Please try again.