トークンの有効期限が切れた後、トークンの有効期限を処理するインターセプタを作成したアプリケーションがあります。トークンの有効期限が切れた後にログインページにリダイレクトされますが、ログインページにリダイレクトした後のエラーを表示します。angeljs HTTPインターセプタがロードされたロケーションパスにエラーを表示する
私の質問は、インターセプタがアプリケーションをそのページにリダイレクトした後に、ログインページに期限切れのトークンエラーを表示するにはどうすればよいですか。
HERESに私のリダイレクタ:最後に
app
.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push(function($q, $location, LoopBackAuth) {
return {
responseError: function(rejection) {
if (rejection.status == 401) {
//Now clearing the loopback values from client browser for safe logout...
LoopBackAuth.clearUser();
LoopBackAuth.clearStorage();
$location.path("/login");
}
return $q.reject(rejection);
}
};
})
}])
.config(function(LoopBackResourceProvider) {
LoopBackResourceProvider.setAuthHeader('X-Access-Token');
})
'/ login'パスはプライマリアプリケーションの一部ですか?同じindex.htmlを共有していますか?もしそうなら、あなたは '$ stateParams.error = 'Token expired''を使って他のページに遷移し、それをログインフォームの上にポップアップで表示することができます。また、エラーにurlパラメータを設定することもできます: '/ login?error = TokenExpired'。 – forrestmid
@forrestmid私の他の問題は、anglejsの知識が不足しています...私はURLパラメータとしてエラーを送信しようとしましたが、ログインコントローラでスコープを設定しましたが、location.pathを実行しているときにそのエラーをテンプレートに反映できません'login')。search(params)。ただし、login?error = xxxxページを再読み込みする場合に限り、location.pathがそのページの取得要求を作成しなかったかのようになります。 – maumercado
また、$ stateParamsをどのように移行して追加するのか分かりませんでしたが、試してみましたが、未定義のcant呼び出しメソッドの切り替えに遭遇しました...スコープはインターセプタのvarではないので...ここでもanglejsのナレッジは不足しています理由 – maumercado