Open jonnyhoff opened 1 year ago
Hello, I'm facing the exact same issue, I guess no fix has been submitted yet!
What worked for me is to create a custom authentication backend:
from axes.backends import AxesBackend
class CustomAxesBackend(AxesBackend):
def authenticate(self, request=None, username=None, password=None, **kwargs):
if request is None:
# Create a minimal request object if it's not provided
class MinimalRequest:
META = {'REMOTE_ADDR': 'unknown'}
request = MinimalRequest()
# Call the original authenticate method
return super().authenticate(request, username, password, **kwargs)
This approach should help bypass the issue where the AxesBackend
requires a request object, allowing your Django Ninja JWT integration to function correctly.
This has been resolved in django-ninja-jwt new release v5.3.3
Django Axes works great when logging in normally but I've implemented Django Ninja JWT and when making REST API requests using the default Django Ninja JWT controller
api.register_controllers(NinjaJWTDefaultController)
, I get the below error.It's obvious that the authentication method needs to include the request as an argument but I'm unable to find where in Django Ninja JWT's code this needs to be done.