2017-01-11 9 views
1

У меня есть веб-проект, созданный с Django 1.9, который будет иметь свой RESTful API в качестве приложения. Я не хочу использовать Django Rest Framework, поскольку, по моему мнению, он работает как оболочка самого Django, которую у меня уже есть.django-oauth-toolkit без Django Rest Framework

Я использую django-oauth-toolkit для аутентификации OAuth2, но проблема в том, что Django требует токена csrf в POST-запросах, и я не могу отключить SessionAuthenticationMiddleware во всем приложении. Я попытался перенаправить на расширенный метод для класса TokenView, но Django все еще запрашивает токен csrf в запросе.

Вот то, что я до сих пор:

Структура проекта:

myproject: 
    |_app1 
    |_app2 
    |_api 
     |_views.py 
     |_urls.py 

апи/urls.py:

from django.conf.urls import include, url 
from django.conf import settings 
from . import views 

urlpatterns = [ 
    url(r'^o/token/$', views.TokenView.as_view(), name="token"), 
    url(            
     r'^o/', 
     include(
      'oauth2_provider.urls', 
      namespace='oauth2_provider' 
     ) 
    ), # OAuth2 Provider 
] 

апи/views.py:

class TokenView(InitialTokenView): 

    def __init__(self, **kwargs): 
     super(TokenView, self).__init__(**kwargs) 

    @method_decorator(csrf_exempt) 
    def dispatch(self, *args, **kwargs): 
     return super(TokenView, self).dispatch(*args, **kwargs) 

Класс TokenView прибывает fr om исходный код django-oauth-toolkit https://github.com/evonove/django-oauth-toolkit/blob/master/oauth2_provider/views/base.py

Что мне не хватает?

Заранее спасибо.

ответ

0

Я нашел способ решить эту проблему без использования Django-Rest-Framework. Если у кого-то такая же проблема, я отправил ответ по этой ссылке: https://stackoverflow.com/a/41728627/7053852

Смежные вопросы