skillfed

djoser

REST implementation of Django authentication system.

djoser v2.3.4 404.3K downloads/30d#6,912 on PyPI2,683
Permissive license MIT Active released

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 djoser

uv

uv add djoser

poetry

poetry add djoser

Installing 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

Development Status :: 5 - Production/StableFramework :: DjangoFramework :: Django :: 3.2Framework :: Django :: 4.0Framework :: Django :: 4.1Framework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Tags

django rest authenticationuser registration apijwt login endpointdjango password reset restsocial auth integrationrest api user managementwebauthn django
django-rest-frameworkuser-authenticationjwt-auth

More Dynamic Content packages