API Key authentication for Django Ninja.
This is a fork from django-ninja-apikey.
Key Features:
- Easy integration into your projects
- Well integrated with the Admin interface
- Secure API keys due to hashing
- Works with the standard user model
pip install ninja-api-key
- Add
ninja_apikey
to your installed apps in your Django project:
# settings.py
INSTALLED_APPS = [
# ...
"ninja_apikey",
]
- Apply migrations
python manage.py migrate
- Secure
a. the whole API
# api.py
from ninja import NinjaAPI
from ninja_apikey.security import APIKeyAuth
# ...
api = NinjaAPI(auth=APIKeyAuth())
# ...
@api.get("/secure_endpoint")
def secure_endpoint(request):
return f"Hello, {request.user}!"
b. an specific endpoint
# api.py
from ninja import NinjaAPI
from ninja_apikey.security import APIKeyAuth
# ...
auth = APIKeyAuth()
api = NinjaAPI()
# ...
@api.get("/secure_endpoint", auth=auth)
def secure_endpoint(request):
return f"Hello, {request.user}!"
Contributions are welcome, feel free to open an Issue or Pull Request.
git clone https://github.com/lucasrcezimbra/ninja-api-key
cd ninja-api-key
python -m venv .venv
source .venv/bin/activate
pip install .[test]
pre-commit install
make test