私はアクセス/リフレッシュトークンでOAuthを使用しています。Angular 2では、不正なhttp呼び出しを傍受し、自動的にトークンをリフレッシュし、他のhttp呼び出しで新しいトークンを使用する方法を教えてください。
Handling refresh tokens using rxjs
https://www.illucit.com/blog/2016/03/angular2-http-authentication-interceptor/
私は拡張しています:私は、コールを再試行しようと、不正なHTTP呼び出しをキャッチし、自動的にトークンを更新し、新しいトークンを使用するためにこれらの例を踏襲していますAngularのHttpクラスを使用して、401を首尾よく捕まえることができます。私の問題は、私がほぼ同時に複数のhttpコールを持っているときです。彼らはすべて無許可の401に戻ります。その後、彼らはすべてトークンをリフレッシュしようとします。最初にサーバーに到達すると、新しいトークンが取得され、新しいトークンでHTTP呼び出しが再試行されます。しかし、他のすべての呼び出しは、最初の呼び出しが新しいトークンで戻るのを待たずに、同じリフレッシュトークンで同じことを試みています。バックエンドでエラーが発生しています。
401を返す最初のhttp呼び出しは、新しいトークンを取得するプロセスを経由し、傍受される他のすべての呼び出しが最初の呼び出しを完了するのを待つことが理想的です。しかし、私が投稿した例に基づいて、私は後者が401エラーを傍受し、最初の呼び出しから返されたトークンを待つ方法を知らない。
私はオブザーバブルを使用しています。