Skip to main content

REST implementation of Django authentication system.

Project description

https://img.shields.io/pypi/v/djoser.svg Build Status https://codecov.io/gh/sunscrapers/djoser/branch/master/graph/badge.svg https://img.shields.io/pypi/dm/djoser Docs

REST implementation of Django authentication system. djoser library provides a set of Django Rest Framework views to handle basic actions such as registration, login, logout, password reset and account activation. It works with custom user model.

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 architecture.

Developed by SUNSCRAPERS with passion & patience.

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

Requirements

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

  • Python>=3.9,<4.0 (including 3.10, 3.11, and 3.12)

  • Django>=3.0.0 (supporting Django 3.2 through 5.1)

  • Django REST Framework>=3.12

Installation

Simply install using pip:

$ pip install djoser

And continue with the steps described at 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:

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

We use poetry as dependency management and packaging tool.

$ cd djoser
$ poetry install --all-extras

This will create a virtualenv with all development dependencies.

To run the test just type:

$ poetry run pytest

We also prepared a convenient Makefile to automate commands above:

$ make init
$ make test

To activate the virtual environment run

$ poetry shell

Without poetry

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

$ pip install .[test]
$ cd testproject
$ ./manage.py test

Example project

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

$ make migrate
$ make runserver

Commiting your code

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

$ 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:

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djoser-2.3.3.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djoser-2.3.3-py3-none-any.whl (71.9 kB view details)

Uploaded Python 3

File details

Details for the file djoser-2.3.3.tar.gz.

File metadata

  • Download URL: djoser-2.3.3.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for djoser-2.3.3.tar.gz
Algorithm Hash digest
SHA256 6ceeea9898cbdd585f1daa1ee9d46270600c0401dcd2d1db6f7894782006f6a6
MD5 df5b41dc4d5a37bdd5e97df59236f2b7
BLAKE2b-256 35bc8931752c12ddc987fc0c729e9b675e2f72e37ebd82f7ca31a10f287de045

See more details on using hashes here.

File details

Details for the file djoser-2.3.3-py3-none-any.whl.

File metadata

  • Download URL: djoser-2.3.3-py3-none-any.whl
  • Upload date:
  • Size: 71.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for djoser-2.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b97d233b626c26ebccb09f5614420873ad78b8b1fb1459c76475b05319bae567
MD5 1ae9e4332b96b3f456ffb6cbb6899fde
BLAKE2b-256 01b3f51273281172ff233a8c16df916282d75502dbc6a06b9b5d01ed3039f8ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page