2016-09-26 4 views
1

Я начинаю в Django, и я узнаю о токере JWT отсюда.Аутентификация с помощью токена JWT в Django

http://getblimp.github.io/django-rest-framework-jwt/#rest-framework-jwt-auth

Я уже настроен в моем settings.py.

REST_FRAMEWORK = { 
    'DEFAULT_AUTHENTICATION_CLASSES': 
     (
     'rest_framework.authentication.SessionAuthentication', 
     'rest_framework.authentication.BasicAuthentication', 
     'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 
     ), 

    'DEFAULT_MODEL_SERIALIZER_CLASS': 
     'rest_framework.serializers.ModelSerializer', 

    'DEFAULT_PERMISSION_CLASSES': 
    (
    'rest_framework.permissions.IsAuthenticated', 
     ) 
} 

Если я делаю завиток, я действительно возвращаю свой токен.

curl -X POST -d "username=khant&password=khant" http://127.0.0.1:8000/api-token-auth/ 

Но когда я получить доступ к своему защищенному URL,

curl -H "Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImtoYW50IiwidXNlcl9pZCI6OCwiZW1haWwiOiJraGFudEBnbWFpbC5jb20iLCJleHAiOjE0NzQ5MDQxNTJ9.jaZ3HwsXjx7Bk2ol5UdeE8UUlq4OEGCbnb1T8vDhO_w" http://127.0.0.1:8000/dialogue_dialoguemine/ 

Он всегда говорил об этом, когда я получить доступ из Интернета. Локальный код мне подходит.

{ "подробно": "учетные данные аутентификации не были предоставлены."}

В моей защищенной URL, я просто пишу простой API для запроса. Могу ли я узнать, как это решить?

class DialogueMineView(generics.ListAPIView): 
    permission_classes = (IsAuthenticated,) 

    serializer_class = DialogueSerializer 
    paginate_by = 2 

    def get_queryset(self): 

     user = self.request.user 
     return Dialogue.objects.filter(owner=user) 
+0

Вы сделали все правильно, пожалуйста, проверьте снова, что вы вводите или код в curl. – Windsooon

+0

Я все еще застрял. как устранить неполадки? –

ответ

0

Я знаю сейчас. Для моего случая, я не в порядке только в Интернете. Я проверяю эту ссылку.

Django Rest Framework - Authentication credentials were not provided

Следует сказать, что мне нужно добавить

WSGIPassAuthorization On 

в моей httpd.conf в апача каталоге. Теперь все в порядке.

+0

где именно вы добавляете, что WSGIPassAuthorization On? –