Skip to content

foauth/foauth.org

Repository files navigation

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'
>>> requests.post('https://foauth.org/getpocket.com/v3/add', data={'title': 'foauth.org'}, auth=auth)
>>> r = requests.post('https://foauth.org/getpocket.com/v3/get', data={'count': 1}, auth=auth)
>>> r.json()['list'].values()[0]['resolved_url']
'https://foauth.org/'

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.

Credits

Written by by Marty Alchin, named by Kenneth Reitz