Authentication Decorators¶
Authentication decorators provide route-level authentication and authorization controls.
HTTPS Enforcement¶
from djangoapi_guard import SecurityDecorator
from django.http import JsonResponse
guard_deco = SecurityDecorator(config)
@guard_deco.require_https()
def login(request):
return JsonResponse({"token": "secure_jwt_token"})
Authentication Requirements¶
@guard_deco.require_auth(type="bearer")
def user_profile(request):
return JsonResponse({"profile": "user data"})
API Key Authentication¶
@guard_deco.api_key_auth(header_name="X-API-Key")
def api_key_endpoint(request):
return JsonResponse({"data": "api key required"})
Required Headers¶
@guard_deco.require_headers({
"X-Requested-With": "XMLHttpRequest",
"X-CSRF-Token": "required"
})
def secure_endpoint(request):
return JsonResponse({"data": "csrf protected"})
Combined Authentication Patterns¶
@guard_deco.require_https() # Secure connection
@guard_deco.require_auth(type="bearer") # Bearer token
@guard_deco.api_key_auth(header_name="X-Admin-Key") # Admin API key
@guard_deco.require_headers({
"X-CSRF-Token": "required",
"X-Request-ID": "required"
})
def critical_admin_endpoint(request):
return JsonResponse({"status": "critical operation completed"})
Error Handling¶
- 400 Bad Request: Missing required headers
- 401 Unauthorized: Invalid or missing authentication
- 403 Forbidden: Valid auth but insufficient permissions
- 301/302 Redirect: HTTP to HTTPS redirect
Next Steps¶
- Access Control Decorators - IP and geographic restrictions
- Rate Limiting Decorators - Request rate controls
- Behavioral Analysis - Monitor authentication patterns
- Content Filtering - Request validation
For complete API reference, see the Authentication API Documentation.