2016-10-18 4 views
0

私はサーバーと頻繁に通信するAngularjsアプリで作業しています。私はセキュリティが実装されていることを前提としていませんでした。どこでもエラーを受け取りますangularjs

これは、ユーザーが実行を許可されていない操作を実行しようとすると、サーバー側のすべてのapi呼び出しを403許可されていないhttpステータスコードを返すように変更したことを意味します。

ここで、私はアプリケーションがサーバーに行うすべての単一のAPI呼び出しを調べて、それぞれ同じ方法で同じエラーを処理する関数を呼び出します。しかし、私はむしろ「このページに403の権限のない応答が得られると、この機能を実行する」と言う方法を見つけるだろう。私は何を求めているのですか?

+0

はい、あなたは、あなたが答えことを確認する必要があり、すべてのHTTP呼び出しをインターセプトするために$をhttpインターセプタを使用して、そこ403s – theTaoOfJS

+0

@theTaoOfJSに対処することができます。 –

答えて

0

$httpインターセプタを使用できます。インターセプタを追加することで、レスポンスをインターセプトしてステータスコードをチェックし、元の要求が通知される前に必要な操作を行うことができます。例えば

Angularjs $http docs

app.config(function ($httpProvider) { 
    // it can be added by a explicit factory declaration 
    // angular.module(...).factory('myHttpInterceptor', function ... 
    $httpProvider.interceptors.push(function($q, $state) { 
    return { 
     'request': function(config) { 
     return config; 
     }, 

     'response': function(response) { 
     if(response.statusCode === 403){ 
      $state.go('my.unauthorized.state'); 
      // or maybe 
      // $rootScope.$broadcast('unauthorized'); 
     } 
     return response; 
     } 
    }; 
    }); 
}); 
関連する問題