1

http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/に進み、AngularJS を使用する SPA に Azure をセットアップしました。フロントエンドと WebAPI をバックエンドとして使用します。

私たちは完全に認証し、すべてがスムーズに実行されます. ただし、トークンは予想どおり 1 時間後に期限切れになり、ルートが変更されるまで更新されません。つまり、システム内のユーザーがページに座ってからサーバーに GET を行うと、認証が失敗し、トークンを再度取得するために _adal.login() を呼び出すときに画面上のデータが失われます。

私の質問は、インデックス ラッパーがトークンの有効期限が間もなく切れることを検出したときにトークンを自動的に更新する方法、または iFrame を開いて HTTP 要求でトークンを更新するように ADAL を設定する方法です。

私が見つけたように見えるものはすべて、ルート変更に再認証を処理させることを示唆しているだけですが、残念ながらそれがユーザーに問題を引き起こしています.

4

1 に答える 1

2

更新されたトークンを取得するためにルートを変更する必要はありません。インターセプターは、バックエンド (または登録されたエンドポイントの 1 つ) への呼び出しを感知するたびに、キャッシュから適切なトークンを取得しようとします。トークンが有効期限から 5 分以内にある (または存在しない) 場合、ADAL は非表示の iframe を自動的に使用します。それを更新します。login を明示的に呼び出す必要はありません。また、Azure AD のセッション Cookie は、トークンのサイレント更新を実行するために必要なアーティファクトであり、1 時間以上持続します。私は何がうまくいかないのだろうかと思っています。詳細をhttp://www.cloudidentity.com/blog/contact/までご連絡いただければ、さらに詳しく調査させていただきます。

于 2015-12-11T00:52:50.633 に答える