djoser
REST implementation of Django authentication system.
What it is and what it does
Djoser is a Django REST Framework library that reimplements Django's built-in authentication system as REST API endpoints, designed specifically for single-page applications and modern frontend architectures. Instead of server-side form rendering, it provides JSON-based endpoints for user registration, login, logout, password reset, and account activation—eliminating the need to reuse Django's traditional form-based authentication code.
It supports multiple authentication strategies: token-based authentication, JWT (via djangorestframework-simplejwt), social authentication (via social-auth-app-django), and WebAuthn. The library works with Django's custom user models and is actively maintained across Django versions 3.2 through 5.2 and Python 3.9 through 3.13. Its four runtime dependencies are all widely-used, stable packages in the Django ecosystem.
Use it for:
- Building a single-page application (React, Vue, Angular) that needs user registration and login endpoints instead of server-rendered forms.
- Adding JWT-based authentication to a Django REST API without writing custom views.
- Integrating social login (Google, GitHub, etc.) into a REST API using social-auth-app-django.
- Implementing password reset workflows that return JSON responses instead of HTML emails.
- Supporting WebAuthn/passkey authentication for modern security-first applications.
- Migrating a traditional Django app to a decoupled frontend architecture while keeping the same authentication logic.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Django REST Framework views for user registration, login, logout, password reset, and account activation with support for token, JWT, social, and WebAuthn authentication.
Yes. Djoser is a production-stable library (Development Status 5) with active maintenance, no known vulnerabilities, permissive MIT licensing, and low install friction. Use it if you're building a REST API with Django and need standard authentication endpoints; skip it only if you require highly custom authentication flows that the library's configuration cannot accommodate.
Install
djoser on PyPI
pip
pip install djoseruv
uv add djoserpoetry
poetry add djoserInstalling djoser
Before you install
Low friction: pure Python wheel with four runtime dependencies (django, djangorestframework, djangorestframework-simplejwt, social-auth-app-django). Actively maintained with a recent release 13 days ago and 2683 repository stars.
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions—you may use, modify, and distribute djoser freely provided you include the license notice.
Quickstart
pip install djoser
# In Django settings.py, add to INSTALLED_APPS:
# 'djoser'
# 'rest_framework'
# 'rest_framework_simplejwt'
# In urls.py:
from django.urls import path, include
urlpatterns = [path('auth/', include('djoser.urls'))]
# Then use endpoints like POST /auth/users/ for registration
Requires Django 3.2+, Django REST Framework 3.14+, and Python 3.9+; social authentication and WebAuthn features require their respective optional dependencies.
Verify before relying
- Whether WebAuthn support requires additional system libraries or browser-side code beyond what djoser provides.
- Performance characteristics when handling high volumes of authentication requests.
- Extent of customization available for email templates and authentication workflows.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — django, djangorestframework-simplejwt, djangorestframework, social-auth-app-django |
| Maintenance | actively maintained — 13 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 404,283/month — #6,912 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: djoser-2.3.4-py3-none-any.whl
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
dj-rest-authProvides drop-in REST API endpoints for user…
permissive · top 5,000 on PyPI
social-auth-app-djangoIntegrates social authentication and…
permissive · top 5,000 on PyPI
dbapiCommand-line client for interacting with Douban…
permissive · top 15,000 on PyPI
djangorestframework-simplejwtProvides JSON Web Token (JWT) authentication…
permissive · top 5,000 on PyPI
django-registration-reduxProvides user registration and signup…
permissive · top 15,000 on PyPI
social-auth-coreProvides a core framework for integrating…
permissive · top 5,000 on PyPI
fastapi-usersProvides ready-to-use user registration, login,…
permissive · top 5,000 on PyPI
django-allauthProvides integrated local and social…
permissive · top 5,000 on PyPI
webauthnImplements server-side WebAuthn validation for…
permissive · top 5,000 on PyPI
django-registrationProvides user registration workflows for Django…
permissive · top 15,000 on PyPI