0

API の認証に Azure MSAL を使用していますが、サーバー側のページネーションに DevExtreme カスタム ストアを使用していることに問題があります。

Msal Interceptor は機能し、HttpClient の自動トークンを生成しますが、この場合、http 経由でリクエストを送信していません。

ログイン後に取得したアクセス トークンを使用している場合、無効な署名というエラーが発生し、IdToken を使用した場合、この問題を解決する方法として 401 が表示されます。

MSALInterceptorConfigFactory:

protectedResourceMap.set('https://localhost:44379/api/approveMilestones', ['api://cb343c76-cd5b-4af6-8229-014b2522adab/access_as_user']);

accessToken と IdToken を取得しているログイン応答

this.authService.loginPopup()
  .subscribe((response: AuthenticationResult) => {
    AuthenticationHelper.setToken(response.accessToken);
    this.router.navigate(['/payments-approval']);
  });

結果として accessToken と IdTOken の両方を取得していますが、Bearer の要求でそれらを送信すると、これらは機能しません

4

1 に答える 1

0

リクエストをサーバーに送信している間、クロスドメインに移動するとスコープが空になります。小さな角度から独自のインターセプターを作成し、開発モードでコードを挿入できます。

最初にトークンを localStorage に保存します。

localStorage.setItem ('token', result.token);

サーバーにリクエストを送信しながら、ブラウザからトークンを取得します

const token = localStorage.getItem (‘token'); このようなリクエストでトークンを送信します。

詳細はこちらをご覧ください

于 2021-11-19T17:08:44.840 に答える