Skip to main content

a simple, lightweight oauth client

Project description

oauth2py
~~~~~~~~

| |PyPI version|
| |Build Status|

a simple, lightweight oauth client

require
~~~~~~~

python 2.7

supported
~~~~~~~~~

- [x] Weibo
- [ ] QQ
- [x] Facebook
- [x] Github
- [x] Twitter
- [ ] Other…

useage
~~~~~~

#. create client

- put ``oauth2py.json`` in your app root folder

.. code:: json

[{
"name": "github",
"client_id": "",
"client_secret": "",
"redirect_uri": "",
"scope": ""
},
{
"name": "twitter",
"client_id": "",
"client_secret": "",
"redirect_uri": "",
"scope": ""
}]

.. code:: python

from oauth2py.client import OauthClient as oauth

github = oauth.load('github')

- or set config in code

.. code:: python

github.init({
'client_id': '',
'client_secret': '',
'redirect_uri': '',
'scope': ''
})

#. oauth

#. get login url

.. code:: python

url = github.get_login_url(state='abc')

#. get user info

.. code:: python

user = github.get_user_info('code=12345&state=abc')
# or
user = github.get_user_info({'code': '12345', 'state': 'abc'})

#. save access token

.. code:: python

token = github.get_access_token()
# save token ...

#. access resource

- get github repo list

.. code:: python
github.set_access_token({
'access_token': '...'
})
github.access_resource(
'GET', 'https://api.github.com/user/repos')

- another example: post status to twitter

.. code:: python

twitter.set_access_token({
'access_token': '...',
'access_token_secret': '...'
}
)
twitter.access_resource(
'POST',
url='https://api.twitter.com/1.1/statuses/update.json',
data={
'status': 'test from oauth2py!'
}
)

implement new providers
~~~~~~~~~~~~~~~~~~~~~~~

- inherit ``oauth2py.Oauth2`` or ``oauth2py.Oauth`` and set oauth urls

.. code:: python

class Github(Oauth2):

NAME = 'Github'
AUTHORIZATION_URL = 'https://github.com/login/oauth/authorize'
ACCESS_TOKEN_URL = 'https://github.com/login/oauth/access_token'
GET_USERINFO_URL = 'https://api.github.com/user'

def __init__(self):
super(Github, self).__init__()

- parse user info from response

.. code:: python

def parse_user_info(self, response):
return {
'uid': response['id'],
'name': response['name'],
'avatar': response['avatar_url'],
'raw': response
}

.. |PyPI version| image:: https://img.shields.io/pypi/v/oauth2py.svg?style=flat
:target: https://pypi.python.org/pypi/oauth2py
.. |Build Status| image:: https://img.shields.io/travis/shadowsocks/shadowsocks/master.svg?style=flat
:target: https://travis-ci.org/caoyue/oauth2py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oauth2py-1.1.1.tar.gz (5.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page