2016-09-02 3 views
1

私のAngular(1.3)アプリでは、ユーザーが特定のルートにナビゲートすると、templateUrlで指定されたテンプレートに対して、ユーザーが認証されているかどうかに関係なくXHR要求が行われます。Angularテンプレートの認証を要求するにはどうすればよいですか?

私は、認証されていないユーザーが開発者ツールバーの[ネットワーク]タブを開き、テンプレートコードを表示できないようにします。

ユーザが認証されていない限り、templateUrlに対してXHR要求が行われないようにするにはどうすればよいですか?

どのようにの認証を行うことを私は尋ねていないことを願っています。私はちょうど道を訪れることとテンプレートXHR要求を発射することの間に何かを置くことを求めています。

答えて

0

ヨンは、$httpコールを傍受するために使用できる角度インターセプタを試すことができます。すべての要求は、クッキーをチェックやって前に

module.factory('myInterceptor', ['$q', 'userAsyncService', function($q, userAsyncService) { 
    var requestInterceptor = { 
     request: function(config) { 
      // put check on requested url if needed from config 
      var deferred = $q.defer(); 
      // check for user validation here 
      userAsyncService.isValidUser().then(function(valid) { 
       if(valid) { 
        deferred.resolve(config); 
       } else { 
        // reject the request 
        deferred.reject(config); 
       }     
      }); 
      return deferred.promise; 
     } 
    }; 
    return requestInterceptor; 
}]); 

module.config(['$httpProvider', function($httpProvider) { 
    $httpProvider.interceptors.push('myInterceptor'); 
}]); 
+0

私はインターセプタを使用して終了でしたので、私のインターセプタはかなり異なることが判明したが、私は、これを受け入れるだろう。 –

1

は、私は、$クッキーを使用して、存在するならば、彼しない場合、彼は記録されている:$httpProvider

Complete Example

サンプルコードで登録することができますそれじゃない?

ユーザーがログに記録されたときに、システムにCookieを保存する必要があります。

https://docs.angularjs.org/api/ngCookies/service/ $クッキー

+0

私が尋ねるのは、ユーザーがログインしているかどうかは分かりませんが、ユーザーがログインしているかどうかを_check_する場所です。特に、ユーザーがAngular attemptsの前にログインしているかどうかを確認する必要がありますテンプレートを取得します。 –

関連する問題