Skip to main content

Prerequisites

Before installing django-allauth, ensure your environment meets the following requirements:

Python

Python 3.8 or higher

Django

Django 4.2 or higher
If you’re using MySQL with InnoDB and the utf8mb4 charset on versions lower than 5.7.7, you may need to adjust ACCOUNT_EMAIL_MAX_LENGTH due to index size limitations.

Installation Methods

Choose your preferred package manager to install django-allauth:

Basic Installation

For basic account functionality without social authentication:

With Social Account Support

For full functionality including social authentication providers:

With Additional Features

Install with specific optional dependencies:

Optional Dependencies

Understanding what each optional dependency provides:
Required dependencies:
  • oauthlib >= 3.3.0,<4
  • requests >= 2.0.0,<3
  • pyjwt[crypto] >= 2.0,<3
Enables authentication with 100+ social providers including:
  • Google, Facebook, GitHub, Twitter
  • Microsoft, LinkedIn, Apple
  • And many more…
Required dependencies:
  • qrcode >= 7.0.0,<9
  • fido2 >= 1.1.2,<3
Adds support for:
  • TOTP (Time-based One-Time Password)
  • WebAuthn / Passkeys
  • Recovery codes
Required dependencies:
  • python3-saml>=1.15.0,<2.0.0
Enables SAML 2.0 for enterprise SSO solutions.
Required dependencies:
  • pyjwt[crypto] >= 2.0,<3
Provides RESTful API for:
  • Single-page applications (React, Vue, Angular)
  • Mobile applications
  • Headless CMS integrations
Required dependencies:
  • python3-openid >= 3.0.8,<4
Adds support for OpenID protocol.
Required dependencies:
  • python3-openid >= 3.0.8,<4
Enables authentication via Steam.

Verification

Verify that django-allauth is installed correctly:
Expected output:

Python & Django Version Matrix

django-allauth supports the following combinations:
django-allauth follows Django’s supported versions policy. Older versions may work but are not officially tested or supported.

Development Installation

For contributing to django-allauth or testing the latest features:

Troubleshooting

Ensure django-allauth is installed in your active Python environment:
If not listed, reinstall:
Check for conflicting dependencies:
Consider using a virtual environment:
If using MySQL with InnoDB and utf8mb4 charset (versions < 5.7.7), add to your settings:
settings.py
This reduces the email field length to accommodate the larger character size in utf8mb4.

What’s Next?

Quickstart Guide

Configure django-allauth and get your authentication system up and running

Introduction

Learn more about django-allauth features and architecture