It is an integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication. In simple terms, it is a combination of simple login and registration along with social authentication system.
Django-Allauth is the most popular Django package used for Authentication purposes. Best thing about it is that it is available as open source which speeds up the development process due to collaborations with the developers all around the world.
Advantages of Django-allauth
- Support for Python 2.6, 2.7 and 3.3
- Support for Django Version 1.4.3 and above.
- Supports Social authentication through Dropbox and google using OAuth2.0
- Supports multiple authentication schemes (e.g. login by user name, or by e-mail)
- Multiple strategies for account verification (ranging from none to e-mail verification)
- Support to connect multiple social accounts to a Django user account.
- Consumer keys, tokens make use of the Django sites framework. This is especially helpful for larger multi-domain projects, but also allows for for easy switching between a development (localhost) and production setup without interfering with your settings and database.
- Rapidly gaining traction and improving day by day.
- FAQ page solves most of the problems related to Django-allauth. Otherwise most problems are solved on StackOverflow under the tag #django-allauth. Also mailing list is also available to solve further issues if any.
- It is well tested than other Django authentication packages; credits to consistent development work going on.
- The installation, configuration is easy to get started with.
- Pre-defined templates are available. Its upto the developer whether he wants to customize them or not.
- Also, one can easily add the new backends if required.
Disadvantages of django-allauth:
- While working on it and researching more about it, I found that it has some documentation gaps that need to be fixed.
- It can get problematic for beginners since it involves series of small but time-consuming hurdles.
Django Social Auth:
Django Social-auth library is a Django package that was made for the social authentication. But the library is deprecated now and has migrated to Python-social-auth for providing better support to several frameworks and ORMs.
Advantages of Django-Social-Auth:
- Provides social authentication using OAuth and OpenId mechanism
- Support for Django, Flask, Pyramid, Webpy frameworks.
Disadvantages of Django-Social-auth:
- This package is deprecated.
- No support for Python 3.x
- Development on its codebase has stopped.
- Not well documented. It lacks FAQ page for bug fixing.
Python social-auth is easy-to-setup authentication system that provides vast support. It supports several frameworks and auth providers. It has migrated from django-social-auth to generalize the package to provide a vast support and implement a common interface to define new authentication providers from third-parties and bring support for more frameworks and ORMs.
Advantages of Python-Social-auth:
- Provides support for frameworks such as Django, Flask, Webpy, Pyramid and Tornado.
- Supports Python 3.x
- Supports social authentication through Dropbox, Google, etc. using OAuth 2.0
- Frameworks API is provided that ease the implementation to increase the number of frameworks supported.
- ORMs like SQLAlchemy, Django ORM and Mongoengine are supported
- Storage API is provided to add support to more ORMs.
- Multiple social accounts can be associated to a single user.
- Basic user data population, to allow custom fields values from providers response.
Disadvantages of Python Social-Auth:
- Not well documented.
- Newer package. So, we cannot predict the future developments.
- Lot of issues(98 issues) are listed on Github.
answered 2 years ago