sunscrapers
djoser
Python

REST implementation of Django authentication system.

Last updated Jul 2, 2026
2.7k
Stars
467
Forks
202
Issues
0
Stars/day
Attention Score
95
Language breakdown
No language data available.
โ–ธ Files click to expand
README

====== djoser ======

.. image:: https://img.shields.io/pypi/v/djoser.svg :target: https://pypi.org/project/djoser

.. image:: https://github.com/sunscrapers/djoser/actions/workflows/test-suite.yml/badge.svg?branch=master :target: https://github.com/sunscrapers/djoser/actions?query=branch%3Amaster :alt: Build Status

.. image:: https://codecov.io/gh/sunscrapers/djoser/branch/master/graph/badge.svg :target: https://codecov.io/gh/sunscrapers/djoser

.. image:: https://img.shields.io/pypi/dm/djoser :target: https://img.shields.io/pypi/dm/djoser

.. image:: https://readthedocs.org/projects/djoser/badge/?version=latest :target: https://djoser.readthedocs.io/en/latest/ :alt: Docs

REST implementation of Django <https://www.djangoproject.com/>_ authentication system. djoser library provides a set of Django Rest Framework <https://www.django-rest-framework.org/>_ views to handle basic actions such as registration, login, logout, password reset and account activation. It works with custom user model <https://docs.djangoproject.com/en/dev/topics/auth/customizing/>_.

Supported features include:

  • Token-based authentication
  • JWT authentication
  • Social authentication
  • WebAuthn support
Instead of reusing Django code (e.g. `PasswordResetForm), we reimplemented few things to fit better into Single Page App application> architecture.

Developed by SUNSCRAPERS _ with passion & patience.

.. image:: https://asciinema.org/a/94J4eG2tSBD2iEfF30a6vGtXw.png :target: https://asciinema.org/a/94J4eG2tSBD2iEfF30a6vGtXw

Requirements ============

To be able to run djoser you have to meet the following requirements:

  • Python>=3.9,<4.0 (including 3.10, 3.11, 3.12, and 3.13)
  • Django>=3.2 (supporting Django 3.2 through 5.2)
  • Django REST Framework>=3.14
Installation ============

Simply install using pip:

.. code-block:: bash

$ pip install djoser

And continue with the steps described at configuration started.html#configuration> guide.

Documentation =============

Documentation is available to study at https://djoser.readthedocs.io _ and in docs directory.

Contributing and development ============================

To start developing on djoser, clone the repository:

.. code-block:: bash

$ git clone git@github.com:sunscrapers/djoser.git

We use poetry _ as dependency management and packaging tool.

.. code-block:: bash

$ cd djoser $ poetry install --all-extras

This will create a virtualenv with all development dependencies.

To run the test just type:

.. code-block:: bash

$ poetry run pytest

We also prepared a convenient Makefile to automate commands above:

.. code-block:: bash

$ make init $ make test

To activate the virtual environment run

.. code-block:: bash

$ poetry shell

Without poetry


New versions of pip can use pyproject.toml to build the package and install its dependencies.

.. code-block:: bash

$ pip install .[test]

.. code-block:: bash

$ cd testproject $ ./manage.py test

Example project


You can also play with test project by running following commands:

.. code-block:: bash

$ make migrate $ make runserver

Commiting your code


Before sending patches please make sure you have pre-commit _ activated in your local git repository:

.. code-block:: bash

$ poetry run pre-commit install

This will ensure that your code is cleaned before you commit it. The pre-commit hooks will run:

  • Black (code formatting)
  • Ruff (linting)
  • Docformatter (docstring formatting)
  • Other quality checks
Similar projects ================

List of projects related to Django, REST and authentication:

  • django-rest-registration _
  • django-oauth-toolkit `_
Please, keep in mind that while using custom authentication and TokenCreateSerializer validation, there is a path that ignores intentional return of None from authenticate() and try to find User using parameters. Probably, that will be changed in the future.
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท sunscrapers/djoser ยท Updated daily from GitHub