I'm having trouble using basic auth with django, here's my config:
MIDDLEWARE_CLASSES = [
'request_id.middleware.RequestIdMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware', # <<<<<===
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.RemoteUserBackend',
'django.contrib.auth.backends.ModelBackend',
]
and my view:
def api_list_things(request, intake_id=None):
if not request.user.is_authenticated():
return JsonResponse({'message': 'Not authenticated'}, status=403)
return JsonResponse({'message': 'ok'})
But when I do curl -v http://user:pass@localhost:8000/api/list_things/
I get the unauthenticated error:
* Hostname was NOT found in DNS cache
* Trying ::1...
* connect to ::1 port 8000 failed: Connection refused
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8000 (#0)
* Server auth using Basic with user 'd'
> GET /trs/api/intakes/ HTTP/1.1
> Authorization: Basic dXNlcjpwYXNz
> User-Agent: curl/7.38.0
> Host: localhost:8000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 403 Forbidden
< Vary: Cookie
< X-Frame-Options: SAMEORIGIN
< Content-Type: application/json
< Connection: close
< Server: Werkzeug/0.11.10 Python/3.4.2
< Date: Wed, 20 Jul 2016 14:16:32 GMT
<
* Closing connection 0
{"message": "Not authenticated"}%
I don't see where I'm wrong, maybe somebody can help me ?