django-allauth

HomePage: http://github.com/pennersr/django-allauth

Author: Raymond Penners

Download: https://pypi.python.org/packages/source/d/django-allauth/django-allauth-0.16.1.tar.gz

        ==========================
Welcome to django-allauth!
==========================

.. image:: https://badge.fury.io/py/django-allauth.png
   :target: http://badge.fury.io/py/django-allauth

.. image:: https://travis-ci.org/pennersr/django-allauth.png
   :target: http://travis-ci.org/pennersr/django-allauth

.. image:: https://pypip.in/d/django-allauth/badge.png
   :target: https://crate.io/packages/django-allauth?version=latest

.. image:: https://coveralls.io/repos/pennersr/django-allauth/badge.png?branch=master
   :alt: Coverage Status
   :target: https://coveralls.io/r/pennersr/django-allauth

Integrated set of Django applications addressing authentication,
registration, account management as well as 3rd party (social) account
authentication.

Home page
  http://www.intenct.nl/projects/django-allauth/

Source code
  http://github.com/pennersr/django-allauth

Mailinglist
  http://groups.google.com/group/django-allauth

Documentation
  http://django-allauth.readthedocs.org/en/latest/

Stack Overflow
  http://stackoverflow.com/questions/tagged/django-allauth

Rationale
=========

Most existing Django apps that address the problem of social
authentication focus on just that. You typically need to integrate
another app in order to support authentication via a local
account.

This approach separates the worlds of local and social
authentication. However, there are common scenarios to be dealt with
in both worlds. For example, an e-mail address passed along by an
OpenID provider is not guaranteed to be verified. So, before hooking
an OpenID account up to a local account the e-mail address must be
verified. So, e-mail verification needs to be present in both worlds.

Integrating both worlds is quite a tedious process. It is definitely
not a matter of simply adding one social authentication app, and one
local account registration app to your `INSTALLED_APPS` list.

This is the reason this project got started -- to offer a fully
integrated authentication app that allows for both local and social
authentication, with flows that just work.


Overview
========

Requirements
------------

- Python 2.6, 2.7 or 3.3

- Django (1.4.3+)

- python-openid or python3-openid (depending on your Python version)

- requests and requests-oauthlib

Supported Flows
---------------

- Signup of both local and social accounts

- Connecting more than one social account to a local account

- Disconnecting a social account -- requires setting a password if
  only the local account remains

- Optional instant-signup for social accounts -- no questions asked

- E-mail address management (multiple e-mail addresses, setting a primary)

- Password forgotten flow

- E-mail address verification flow

Supported Providers
-------------------

- Amazon (OAuth2)

- AngelList (OAuth2)

- Bitbucket (OAuth)

- Bitly (OAuth2)

- Dropbox (OAuth)

- Facebook (both OAuth2 and JS SDK)

- Feedly (OAuth2)

- Flickr (OAuth)

- Github (OAuth2)

- Google (OAuth2)

- Instagram (OAuth2)

- LinkedIn (OAuth, OAuth2)

- OpenId

- Paypal (OAuth2)

- Persona

- SoundCloud (OAuth2)

- Stack Exchange (OAuth2)

- Tumblr (OAuth)

- Twitch (OAuth2)

- Twitter (OAuth)

- Vimeo (OAuth)

- VK (OAuth2)

- Weibo (OAuth2)

Note: OAuth/OAuth2 support is built using a common code base, making it easy to add support for additional OAuth/OAuth2 providers. More will follow soon...


Features
--------

- Supports multiple authentication schemes (e.g. login by user name,
  or by e-mail), as well as multiple strategies for account
  verification (ranging from none to e-mail verification).

- All access tokens are consistently stored so that you can publish
  wall updates etc.

Architecture & Design
---------------------

- Pluggable signup form for asking additional questions during signup.

- Support for connecting multiple social accounts to a Django user account.

- The required consumer keys and secrets for interacting with
  Facebook, Twitter and the likes are to be configured in the database
  via the Django admin using the SocialApp model.

- Consumer keys, tokens make use of the Django sites f