問題タブ [angular-http-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3302 参照

javascript - Angularjs - $routeChangeError の後に最後の履歴エントリを削除する

サーバー側のリソースが必要routeです。resolveそのリソースは認証を要求します。そのため、キャンセル可能なログインフォームポップアップを表示します。キャンセルすると、ルート/解決が正しく取得rejectedおよび起動されます。$routeChangeError

問題は、アドレスバーに失敗した場所/URL と不要な履歴エントリがあることです。

リロードせずに現在の場所の URL を最後のものに置き換えるにはどうすればよいですか? また、ルート変更が失敗した後、現在の履歴エントリを削除するにはどうすればよいでしょうか?

編集: angular-http-auth を使用します。これが私のルーティングです:

/home> /item(認証が必要なリソースを解決する必要があります。ログイン フォームにログインしていない場合、キャンセル可能なポップアップが開きます)

認証をキャンセルすると、$routeChangeError が発生し、レンダリングされない/home ためにまだページにいます。/itemアドレス バーに間違った URL が表示されるようになりました。/item

0 投票する
2 に答える
2077 参照

angularjs - angular-http-auth と $http transformResponse

サーバーから 401 "unauthorized" 応答が返されるたびに、angular-http-authを使用してログイン ダイアログを表示しています。

私は冷静なので、サービス内の応答オブジェクトを逆シリアル化することも試みています。たとえば、サービスが をリクエストしcar、応答がである場合、を使用してそれをオブジェクト{make: Honda, model: Civic}に逆シリアル化しようとします。CartransformResponse

例えば:

これはangular-http-authでは機能しません。応答が 401 Unauthorized の場合は、javascript エラーが発生します。transformResponseこれは、応答が 401 だった場合でも、angular がそのコードを実行しようとするためです。

$httpインターセプター ( angular-http-authが使用するもの) はtransformResponseコードの後に​​実行されることが判明しました。transformResponseサーバーの応答が 401 だった場合、そのコードは機能しないため、これは大きな問題ですdata( .

これは他の誰かにとって問題ですか?どうやってそれを回避しましたか?インターセプターを使用するtransformResponse場合は使用しないでください。$http

0 投票する
0 に答える
84 参照

angularjs - angular-http-auth が機能しない Relangular

私は基本的な http リクエストでAngular-HTTP-Authを使用していましたが、その後 Restangular に移行し、401 が HTTP-Auth でキャッチされなくなっていることがわかりました。これは、Angular http メソッドが使用されていないか、何らかの方法で傍受されているためだと思います。これらを再び連携させる方法はありますか?Restangular にはインターセプターが公開されていることは知っていますが、2 つがどのように動作する必要があるかはわかりません。

0 投票する
1 に答える
18134 参照

angularjs - angularjs 基本認証ヘッダー

API に接続して認証ヘッダーを送信しようとしています。こちらで説明されているように Base64 を使用しています

しかし、私はこのエラーが発生しています

XMLHttpRequest はhttps://.../Category.json?callback= ? を読み込めません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン ' http://....com ' へのアクセスは許可されていません。応答の HTTP ステータス コードは 400 でした。

0 投票する
0 に答える
739 参照

angularjs - auth-http-interceptor を使用して login-confirmed をブロードキャストする

ログイン確認済みをブロードキャストするために auth-http-interceptor を使用しています。ユーザーがログインしているかどうかを確認する main.html があります。

とディレクティブ

そしてログインコントローラー

1) しかし、console.logs を取得できません。私のコードに何か問題がありますか?

2) 私は正しいです。

0 投票する
1 に答える
560 参照

angularjs - 認証が失敗すると、Angular $http Interceptor が複数のモーダルを開く

$http interceptor失敗したときにログインモーダルを表示するために使用してい$authます。ここに私が持っている簡単なセットアップがあります:

上記のコードは正常に動作します。しかし、私が抱えている問題は、API が複数の認証失敗エラーをスローすると、インターセプターが複数のモーダルを同時に開くことです。通常、1 ページでバックエンド API に接続するさまざまなサービスが 2 ~ 3 回あり、認証が失敗すると、それらのすべての API が無効なトークンの間に認証失敗エラーを返します。このインターセプターは、3 つの take_invalid エラーとしてそれを検出し、3 つのログイン モーダルを 1 つずつ重ねて表示します。これを防ぐにはどうすればよいですか?

認証失敗が何回発生しても、インターセプターが 1 つのログインモーダルのみを表示するようにするにはどうすればよいですか?

私のサービスは次のようになります。

サービスでは$rootScope.loginProgress、ログインモーダルが開いているかどうかを判断するためのスイッチとして使用しようとしています。$rootScope.loginProgressただし、モーダルが既に開かれている場合(true の場合)に空の promise を返す方法がわかりません。

0 投票する
1 に答える
2422 参照

angularjs - Angular でリクエスト ヘッダーを設定およびオーバーライドする正しい方法

使用している認証方法のために、すべてのリクエストにグローバル http ヘッダーを設定する必要があります。SSO アプローチを使用してユーザーを認証するための Identity Server があります。これまでのところ、インターセプターを使用してヘッダーをグローバルに設定していました。ただし、認証方法を使用しないサードパーティ API にリクエストを送信する必要がある場合があります。インターセプターによって構成された認証ヘッダーをオーバーライドするにはどうすればよいですか? この問題に対する推奨されるアプローチはありますか?