Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iMerica/dj-rest-auth
Authentication for Django Rest Framework
https://github.com/iMerica/dj-rest-auth
authentication django django-rest-framework jwt python rest-api
Last synced: 13 days ago
JSON representation
Authentication for Django Rest Framework
- Host: GitHub
- URL: https://github.com/iMerica/dj-rest-auth
- Owner: iMerica
- License: mit
- Created: 2020-02-28T19:35:48.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-24T16:04:03.000Z (4 months ago)
- Last Synced: 2024-07-31T01:19:50.565Z (3 months ago)
- Topics: authentication, django, django-rest-framework, jwt, python, rest-api
- Language: Python
- Homepage: https://dj-rest-auth.readthedocs.io/en/latest/index.html
- Size: 843 KB
- Stars: 1,629
- Watchers: 20
- Forks: 304
- Open Issues: 208
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-translation - Dj-Rest-Auth
- best-of-web-python - GitHub - 46% open · ⏱️ 29.04.2024): (Authorization & Authentication)
- stars - iMerica/dj-rest-auth - Authentication for Django Rest Framework (Python)
- stars - iMerica/dj-rest-auth - Authentication for Django Rest Framework (Python)
README
# Dj-Rest-Auth
[![](https://github.com/iMerica/dj-rest-auth/actions/workflows/main.yml/badge.svg)](https://github.com/iMerica/dj-rest-auth/actions/workflows/main.yml/)Drop-in API endpoints for handling authentication securely in Django Rest Framework. Works especially well
with SPAs (e.g., React, Vue, Angular), and Mobile applications.## Requirements
- Django 3, 4 and 5 (See Unit Test Coverage in CI)
- Python >= 3.8## Quick Setup
Install package
pip install dj-rest-auth
Add `dj_rest_auth` app to INSTALLED_APPS in your django settings.py:```python
INSTALLED_APPS = (
...,
'rest_framework',
'rest_framework.authtoken',
...,
'dj_rest_auth'
)
```
Add URL patterns```python
urlpatterns = [
path('dj-rest-auth/', include('dj_rest_auth.urls')),
]
```
(Optional) Use Http-Only cookies
```python
REST_AUTH = {
'USE_JWT': True,
'JWT_AUTH_COOKIE': 'jwt-auth',
}
```### Testing
Install required modules with `pip install -r dj_rest_auth/tests/requirements.pip`
To run the tests within a virtualenv, run `python runtests.py` from the repository directory.
The easiest way to run test coverage is with [`coverage`](https://pypi.org/project/coverage/),
which runs the tests against all supported Django installs. To run the test coverage
within a virtualenv, run `coverage run ./runtests.py` from the repository directory then run `coverage report`.#### Tox
Testing may also be done using [`tox`](https://pypi.org/project/tox/), which
will run the tests against all supported combinations of Python and Django.Install tox, either globally or within a virtualenv, and then simply run `tox`
from the repository directory. As there are many combinations, you may run them
in [`parallel`](https://tox.readthedocs.io/en/latest/config.html#cmdoption-tox-p)
using `tox --parallel`.The `tox.ini` includes an environment for testing code [`coverage`](https://pypi.org/project/coverage/)
and you can run it and view this report with `tox -e coverage`.Linting may also be performed via [`flake8`](https://pypi.org/project/flake8/)
by running `tox -e flake8`.### Documentation
View the full documentation here: https://dj-rest-auth.readthedocs.io/en/latest/index.html
### Acknowledgements
This project began as a fork of `django-rest-auth`. Big thanks to everyone who contributed to that repo!
#### A note on Django AllAuth from @iMerica
This project has optional and very narrow support for Django-AllAuth. As the maintainer, I have no interest in making this package support all use cases in Django-AllAuth. I would rather focus on improving the quality of the base functionality or focus on OIDC support instead. Pull requests that extend or add more support for Django-AllAuth will most likely be declined. Do you disagree? Feel free to fork this repo!