2017-06-20 12 views
0

私はdjango、djangoRestFramework、Angular1.xを使って1ページのアプリケーションを開発しています。私は組み込みのログインメソッドを使ってログインビューを実装しましたが、apiにリクエストを行うたびに、csrfの検証に失敗して戻ります。CSRF検証に失敗しました。リクエストが中止されました。 Django 1.10とAngular 1.6

私は同じようcsrf_protectデコレータで自分のログインビューを包ん:

class LoginView(views.APIView): 

    @method_decorator(csrf_protect) 
    def post(self, request): 
     user = authenticate(
      username=request.data.get('username'), 
      password=request.data.get('password') 
     ) 

     if user is None or not user.is_active: 
      return Response({ 
       'status': 'Unauthorized', 
       'message': 'Username or password incorrect' 
      }, status=status.HTTP_401_UNAUTHORIZED) 

     login(request,user) 
     return Response(UserSerializer(user).data) 

そして、私はangular.configなどを実行しました:

angular.run(['$http', function($http) { 
    $http.defaults.xsrfHeaderName = 'X-CSRFToken'; 
    $http.defaults.xsrfCookieName = 'csrftoken'; 
}]) 

私はcsrf_protectデコレータを取るとき、それはまだ私与えます '要求オブジェクトには属性セッションがありません'というエラーが表示されます。

また、ローカルホストで作業しているときにログインする前にdjango管理者ページにアクセスしてもエラーにはなりません。私は、任意のヘルプは

答えて

0

実はこれは、角1.4で私の作品を高く評価されるだろう、ここでの問題を把握することはできません

var myApp = angular.module('myApp', []).config(function($httpProvider) 
{ 
    $httpProvider.defaults.xsrfCookieName = 'csrftoken' 
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken' 
}); 
関連する問題