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.
To be able to run djoser you have to meet following requirements:
- Python (3.5, 3.6, 3.7, 3.8)
- Django (1.11, 2.2)
- Django REST Framework (3.9, 3.10)
If you need to support other versions, please use djoser<2.
Simply install using pip
:
$ pip install djoser
And continue with the steps described at configuration guide.
Documentation is available to study at
https://djoser.readthedocs.io
and in docs
directory.
To start developing on djoser, clone the repository:
$ git clone git@github.com:sunscrapers/djoser.git
If you are a pipenv user you can quickly setup testing environment by using Make commands:
$ make init
$ make test
Otherwise, if you cannot use Make commands, please create virtualenv and install requirements manually:
$ pip install django djangorestframework
$ pip install -r requirements.txt
$ cd testproject
$ ./manage.py test
If you need to run tests against all supported Python and Django versions then invoke:
$ pip install tox
$ tox -p all
You can also play with test project by running following commands:
$ ./manage.py migrate
$ ./manage.py runserver
List of projects related to Django, REST and authentication:
- django-rest-framework-simplejwt
- django-oauth-toolkit
- django-rest-auth (not maintained)
- django-rest-framework-digestauth (not maintained)
- 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.