Skip to main content

Python social authentication made simple.

Project description

Python Social Auth
==================

Python Social Auth is an easy-to-setup social authentication/registration
mechanism with support for several frameworks and auth providers.

Crafted using base code from django-social-auth, it implements a common interface
to define new authentication providers from third parties, and to bring support
for more frameworks and ORMs.

.. image:: https://travis-ci.org/omab/python-social-auth.png?branch=master
:target: https://travis-ci.org/omab/python-social-auth

.. image:: https://badge.fury.io/py/python-social-auth.png
:target: http://badge.fury.io/py/python-social-auth

.. image:: https://readthedocs.org/projects/python-social-auth/badge/?version=latest
:target: https://readthedocs.org/projects/python-social-auth/?badge=latest
:alt: Documentation Status

.. contents:: Table of Contents


Features
========

This application provides user registration and login using social sites
credentials. Here are some features, which is probably not a full list yet.


Supported frameworks
--------------------

Multiple frameworks are supported:

* Django_
* Flask_
* Pyramid_
* Webpy_
* Tornado_

More frameworks can be added easily (and should be even easier in the future
once the code matures).


Auth providers
--------------

Several services are supported by simply defining backends (new ones can be easily added
or current ones extended):

* Amazon_ OAuth2 http://login.amazon.com/website
* Angel_ OAuth2
* AOL_ OpenId http://www.aol.com/
* Appsfuel_ OAuth2
* ArcGIS_ OAuth2
* Behance_ OAuth2
* BelgiumEIDOpenId_ OpenId https://www.e-contract.be/
* Bitbucket_ OAuth1
* Box_ OAuth2
* Clef_ OAuth2
* Coursera_ OAuth2
* Dailymotion_ OAuth2
* DigitalOcean_ OAuth2 https://developers.digitalocean.com/documentation/oauth/
* Disqus_ OAuth2
* Douban_ OAuth1 and OAuth2
* Dropbox_ OAuth1 and OAuth2
* Evernote_ OAuth1
* Exacttarget OAuth2
* Facebook_ OAuth2 and OAuth2 for Applications
* Fedora_ OpenId http://fedoraproject.org/wiki/OpenID
* Fitbit_ OAuth2 and OAuth1
* Flickr_ OAuth1
* Foursquare_ OAuth2
* `Google App Engine`_ Auth
* Github_ OAuth2
* Google_ OAuth1, OAuth2 and OpenId
* Instagram_ OAuth2
* Itembase_ OAuth2
* Jawbone_ OAuth2 https://jawbone.com/up/developer/authentication
* Kakao_ OAuth2 https://developer.kakao.com
* `Khan Academy`_ OAuth1
* Launchpad_ OpenId
* Line_ OAuth2
* Linkedin_ OAuth1
* Live_ OAuth2
* Livejournal_ OpenId
* LoginRadius_ OAuth2 and Application Auth
* Mailru_ OAuth2
* MapMyFitness_ OAuth2
* Mendeley_ OAuth1 http://mendeley.com
* Mixcloud_ OAuth2
* `Moves app`_ OAuth2 https://dev.moves-app.com/docs/authentication
* `Mozilla Persona`_
* NaszaKlasa_ OAuth2
* `NGPVAN ActionID`_ OpenId
* Odnoklassniki_ OAuth2 and Application Auth
* OpenId_
* OpenStreetMap_ OAuth1 http://wiki.openstreetmap.org/wiki/OAuth
* OpenSuse_ OpenId http://en.opensuse.org/openSUSE:Connect
* Pinterest_ OAuth2
* PixelPin_ OAuth2
* Pocket_ OAuth2
* Podio_ OAuth2
* Rdio_ OAuth1 and OAuth2
* Readability_ OAuth1
* Reddit_ OAuth2 https://github.com/reddit/reddit/wiki/OAuth2
* Shopify_ OAuth2
* Sketchfab_ OAuth2
* Skyrock_ OAuth1
* Soundcloud_ OAuth2
* Stackoverflow_ OAuth2
* Steam_ OpenId
* Stocktwits_ OAuth2
* Strava_ OAuth2
* Stripe_ OAuth2
* Taobao_ OAuth2 http://open.taobao.com/doc/detail.htm?id=118
* ThisIsMyJam_ OAuth1 https://www.thisismyjam.com/developers/authentication
* Trello_ OAuth1 https://trello.com/docs/gettingstarted/oauth.html
* Tripit_ OAuth1
* Tumblr_ OAuth1
* Twilio_ Auth
* Twitter_ OAuth1
* Uber_ OAuth2
* Untappd_ OAuth2
* VK.com_ OpenAPI, OAuth2 and OAuth2 for Applications
* Weibo_ OAuth2
* Withings_ OAuth1
* Wunderlist_ OAuth2
* Xing_ OAuth1
* Yahoo_ OpenId and OAuth2
* Yammer_ OAuth2
* Yandex_ OAuth1, OAuth2 and OpenId
* Zotero_ OAuth1


User data
---------

Basic user data population, to allow custom field values from provider's
response.


Social accounts association
---------------------------

Multiple social accounts can be associated to a single user.


Authentication processing
-------------------------

Extensible pipeline to handle authentication/association mechanism in ways that
suits your project.


Dependencies
============

Dependencies that **must** be met to use the application:

- OpenId_ support depends on python-openid_

- OAuth_ support depends on requests-oauthlib_

- Several backends demand application registration on their corresponding
sites and other dependencies like sqlalchemy_ on Flask and Webpy.

- Other dependencies:
* six_
* requests_


Documents
=========

Project homepage is available at http://psa.matiasaguirre.net/ and documents at
http://psa.matiasaguirre.net or http://python-social-auth.readthedocs.org/.


Installation
============

From pypi_::

$ pip install python-social-auth

Or::

$ easy_install python-social-auth

Or clone from github_::

$ git clone git://github.com/omab/python-social-auth.git

And add social to ``PYTHONPATH``::

$ export PYTHONPATH=$PYTHONPATH:$(pwd)/python-social-auth/

Or::

$ cd python-social-auth
$ sudo python setup.py install


Upgrading
---------

Django with South
~~~~~~~~~~~~~~~~~

Upgrading from 0.1 to 0.2 is likely to cause problems trying to apply a migration when the tables
already exist. In this case a fake migration needs to be applied::

$ python manage.py migrate --fake default


Support
---------------------

If you're having problems with using the project, use the support forum at CodersClan.

.. image:: http://www.codersclan.net/graphics/getSupport_github4.png
:target: http://codersclan.net/forum/index.php?repo_id=8


Copyrights and License
======================

``python-social-auth`` is protected by BSD license. Check the LICENSE_ for
details.

The base work was derived from django-social-auth_ work and copyrighted too,
check `django-social-auth LICENSE`_ for details:

.. _LICENSE: https://github.com/omab/python-social-auth/blob/master/LICENSE
.. _django-social-auth: https://github.com/omab/django-social-auth
.. _django-social-auth LICENSE: https://github.com/omab/django-social-auth/blob/master/LICENSE
.. _OpenId: http://openid.net/
.. _OAuth: http://oauth.net/
.. _myOpenID: https://www.myopenid.com/
.. _Angel: https://angel.co
.. _Appsfuel: http://docs.appsfuel.com
.. _ArcGIS: http://www.arcgis.com/
.. _Behance: https://www.behance.net
.. _Bitbucket: https://bitbucket.org
.. _Box: https://www.box.com
.. _Clef: https://getclef.com/
.. _Coursera: https://www.coursera.org/
.. _Dailymotion: https://dailymotion.com
.. _DigitalOcean: https://www.digitalocean.com/
.. _Disqus: https://disqus.com
.. _Douban: http://www.douban.com
.. _Dropbox: https://dropbox.com
.. _Evernote: https://www.evernote.com
.. _Facebook: https://www.facebook.com
.. _Fitbit: https://fitbit.com
.. _Flickr: http://www.flickr.com
.. _Foursquare: https://foursquare.com
.. _Google App Engine: https://developers.google.com/appengine/
.. _Github: https://github.com
.. _Google: http://google.com
.. _Instagram: https://instagram.com
.. _Itembase: https://www.itembase.com
.. _LaunchPad: https://help.launchpad.net/YourAccount/OpenID
.. _Line: https://line.me/
.. _Linkedin: https://www.linkedin.com
.. _Live: https://live.com
.. _Livejournal: http://livejournal.com
.. _Khan Academy: https://github.com/Khan/khan-api/wiki/Khan-Academy-API-Authentication
.. _Mailru: https://mail.ru
.. _MapMyFitness: http://www.mapmyfitness.com/
.. _Mixcloud: https://www.mixcloud.com
.. _Moves app: https://dev.moves-app.com/docs/
.. _Mozilla Persona: http://www.mozilla.org/persona/
.. _NaszaKlasa: https://developers.nk.pl/
.. _NGPVAN ActionID: http://developers.ngpvan.com/action-id
.. _Odnoklassniki: http://www.odnoklassniki.ru
.. _Pocket: http://getpocket.com
.. _Podio: https://podio.com
.. _Shopify: http://shopify.com
.. _Sketchfab: https://sketchfab.com/developers/oauth
.. _Skyrock: https://skyrock.com
.. _Soundcloud: https://soundcloud.com
.. _Stocktwits: https://stocktwits.com
.. _Strava: http://strava.com
.. _Stripe: https://stripe.com
.. _Taobao: http://open.taobao.com/doc/detail.htm?id=118
.. _Tripit: https://www.tripit.com
.. _Twilio: https://www.twilio.com
.. _Twitter: http://twitter.com
.. _Uber: http://uber.com
.. _VK.com: http://vk.com
.. _Weibo: https://weibo.com
.. _Wunderlist: https://wunderlist.com
.. _Xing: https://www.xing.com
.. _Yahoo: http://yahoo.com
.. _Yammer: https://www.yammer.com
.. _Yandex: https://yandex.ru
.. _Readability: http://www.readability.com/
.. _Stackoverflow: http://stackoverflow.com/
.. _Steam: http://steamcommunity.com/
.. _Rdio: https://www.rdio.com
.. _Tumblr: http://www.tumblr.com/
.. _Amazon: http://login.amazon.com/website
.. _AOL: http://www.aol.com/
.. _BelgiumEIDOpenId: https://www.e-contract.be/
.. _Fedora: http://fedoraproject.org/wiki/OpenID
.. _Jawbone: https://jawbone.com/up/developer/authentication
.. _Mendeley: http://mendeley.com
.. _Reddit: https://github.com/reddit/reddit/wiki/OAuth2
.. _OpenSuse: http://en.opensuse.org/openSUSE:Connect
.. _ThisIsMyJam: https://www.thisismyjam.com/developers/authentication
.. _Trello: https://trello.com/docs/gettingstarted/oauth.html
.. _Django: https://github.com/omab/python-social-auth/tree/master/social/apps/django_app
.. _Flask: https://github.com/omab/python-social-auth/tree/master/social/apps/flask_app
.. _Pyramid: http://www.pylonsproject.org/projects/pyramid/about
.. _Webpy: https://github.com/omab/python-social-auth/tree/master/social/apps/webpy_app
.. _Tornado: http://www.tornadoweb.org/
.. _python-openid: http://pypi.python.org/pypi/python-openid/
.. _requests-oauthlib: https://requests-oauthlib.readthedocs.org/
.. _sqlalchemy: http://www.sqlalchemy.org/
.. _pypi: http://pypi.python.org/pypi/python-social-auth/
.. _OpenStreetMap: http://www.openstreetmap.org
.. _six: http://pythonhosted.org/six/
.. _requests: http://docs.python-requests.org/en/latest/
.. _PixelPin: http://pixelpin.co.uk
.. _Zotero: http://www.zotero.org/
.. _Pinterest: https://www.pinterest.com
.. _Untappd: https://untappd.com/

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

mj-python-social-auth-0.2.22.tar.gz (291.8 kB view details)

Uploaded Source

Built Distributions

mj_python_social_auth-0.2.22-py3-none-any.whl (297.5 kB view details)

Uploaded Python 3

mj_python_social_auth-0.2.22-py2-none-any.whl (297.5 kB view details)

Uploaded Python 2

File details

Details for the file mj-python-social-auth-0.2.22.tar.gz.

File metadata

File hashes

Hashes for mj-python-social-auth-0.2.22.tar.gz
Algorithm Hash digest
SHA256 c15d513301239149735dfda9bdc643245814a40b46c76b8a6c1de1f1588245b7
MD5 6e2c073db3d37061a1b49907f2e8a335
BLAKE2b-256 42eecaa7d7a8fddfaa50ffd20c28fc5bd1ddd3a55efd315e3d9f0137f6198dc1

See more details on using hashes here.

File details

Details for the file mj_python_social_auth-0.2.22-py3-none-any.whl.

File metadata

File hashes

Hashes for mj_python_social_auth-0.2.22-py3-none-any.whl
Algorithm Hash digest
SHA256 2f5ce80f2d69ae80f3dba0512570f3c0183228bca533d45e51269a550bcbf555
MD5 183c57d3744a5d56ce496278246c9486
BLAKE2b-256 934dfb280d150505a2473f037d6e319af71f951b0e9ad36f9304594d66cb4998

See more details on using hashes here.

File details

Details for the file mj_python_social_auth-0.2.22-py2-none-any.whl.

File metadata

File hashes

Hashes for mj_python_social_auth-0.2.22-py2-none-any.whl
Algorithm Hash digest
SHA256 566df8f6e899b51abd659d403ca34ee1059f26e4039311e9dff6ff1ae98d3859
MD5 ecfe611dfcf4224124dad5cc2323fbea
BLAKE2b-256 2b05aee79c933098347ad8f10932b230a64d09140aa53b4ee82f801560f8c119

See more details on using hashes here.

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