recommended method hereは、fetchQuery内で認証トークンをフェッチすることです。
残りの課題は、認証がまだ進行中にリレーが複数回フェッチされても、非同期認証機能が1回だけ呼び出されるようにする方法です。私たちはこれをsingleton約束で行った。 fetchQueryを呼び出すたびに、同じ約束で静的なPromise.resolve()メソッドが呼び出されるため、認証呼び出しが終了すると、すべてのfetchQuery呼び出しは、必要な認証情報で続行されます。
のでfetchQuery
はと認証トークン(JWT)を取得します。
const authToken = await AuthToken.get();
そして持つAuthTokenは(活字体)のようになります。
class AuthToken {
private static _accessTokenPromise: Promise<string>;
public static async get() {
if (!this._accessTokenPromise)
this._accessTokenPromise = this.AuthFunction(); // AuthFunction returns a promise
return await Promise.resolve(this._accessTokenPromise);
}
}