2014-11-13 2 views
3

저는 Python/Django 1.7.1과 Django REST Framework로 프로젝트를 만들고 있습니다. Django REST Framework : 세션 기반 인증을 올바르게 사용하는 방법?

  • 이 www.myproject.com
  • www가 호스트 사용자가 로그인 할 수있는 웹 사이트를 포함

    • api.myproject.com :

      나는 프로젝트에 대한 두 개의 하위 도메인을 가지고있다. REST 백엔드는 API 호스트에 있습니다. 본질적으로

      REST_FRAMEWORK = { 
          'PAGINATE_BY': 10, 
          'PAGINATE_BY_PARAM': None, 
          'MAX_PAGINATE_BY': 10, 
          'DEFAULT_AUTHENTICATION_CLASSES': (
           'rest_framework.authentication.SessionAuthentication', 
           'rest_framework.authentication.TokenAuthentication', 
          ), 
      } 
      

      :

      는이 같은 장고 REST 프레임 워크를 구성 나는 안드로이드 응용 프로그램에 대한 WWW-호스트 및 토큰 기반 인증에 AJAX에 대한 세션 기반 인증을 사용하고 있습니다.

      이제 여기에 문제가 있습니다. WWW 호스트에 로그인 한 사용자는 세션 인증이 사용 가능하므로 API 호스트에서 REST API를 사용할 수 있습니다. WWW 호스트에는 API 호스트에 대한 API 호출을 실행하는 JavaScript가 있습니다. 이것은 잘 작동하지만 사용자가 WWW 호스트에 로그인 한 다음 새 탭을 열고 API 호스트로 이동하면 사용자는 REST API를 볼 수 있으며이를 수행 할 의도는 없습니다.

      사용자가 WWW 호스트에 로그인 할 때 API 호스트에 REST API가 표시되지 않습니까?

      DOMAIN = 'myproject.com' 
      SESSION_COOKIE_DOMAIN = '.' + DOMAIN 
      CSRF_COOKIE_DOMAIN = SESSION_COOKIE_DOMAIN 
      

      내가이 수정 :

      는이 같은 세션 쿠키 도메인 및 CSRF 쿠키 도메인 구성

      DOMAIN = 'myproject.com' 
      SESSION_COOKIE_DOMAIN = 'www.' + DOMAIN 
      CSRF_COOKIE_DOMAIN = SESSION_COOKIE_DOMAIN 
      

      을하지만이 시도 할 때 REST API는 세션 인증을 통해 사용할 수 없습니다 WWW 호스트에 쿠키가 설정되어 있기 때문에 사용자가 WWW 호스트에 로그인 한 경우 ...

      내 문제에 대한 유용한 정보? :-)

      미리 감사드립니다.

      종류와 관련, K.

    답변

    1

    는 기본적으로 ... 내 질문에 종류의 바보 당신은 필요에 따라 권한을 구현하는이 문제를 해결할 수 있습니다. 문제 해결됨! :-)

    관련 문제