Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sunscrapers/djoser

REST implementation of Django authentication system.
https://github.com/sunscrapers/djoser

authentication developer-tools djoser python rest-api

Last synced: about 11 hours ago
JSON representation

REST implementation of Django authentication system.

Awesome Lists containing this project

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 `_ 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 `_.

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.

.. 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.8
- Django>=3.0.0
- Django REST Framework>=3.12

Installation
============

Simply install using ``pip``:

.. code-block:: bash

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

.. code-block:: bash

$ git clone [email protected]: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 py.test testproject

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

$ pre-commit install

This will ensure that your code is cleaned before you commit it.

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.