Django Rest Interface - невозможно получить доступ к аутентифицированному пользователю на моем ресурсе - PullRequest
1 голос
/ 05 марта 2012

Я использую django-rest-interface для создания API.Однако, когда я делаю запрос через curl, произнесите:

    curl -u 'username:password' -X PUT --data "field=value" http://127.0.0.1:8080/resource/

и попытайтесь получить доступ к request.user в методе get (), post (), put () или delete () в ресурсе, Я всегда получаю сообщение о том, что у меня есть доступ к AnonymousUser ().

Как я могу пройти проверку подлинности для этих методов?

РЕДАКТИРОВАТЬ:

Мне удалось это исправитьпроблема для меня, добавив request.user = self.user в функцию dispatch () в файле views.py django-rest-framework, прямо перед обработчиком (request, * args, ** kwargs).

Однако я не уверен, что это правильно.

1 Ответ

0 голосов
/ 25 июня 2012
from djangorestframework.authentication import BasicAuthentication

class BasicUserAuthentication(BasicAuthentication):
   """ A simple wrapper that also sets request.user when using basic auth """

def authenticate(self, request):
    user = super(BasicUserAuthentication, self).authenticate(request)
    if user:
        request.user = user
    return user

Более точный способ справиться с этим - создать подклассификацию BasicAuthentication, как указано выше. Хотя именно такие вещи заставляют меня задаться вопросом django-rest-framework ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...