2

そのため、React アプリに Auth 情報を含むストアがあります。認証は JWT トークンから派生します。ストアには、認証ストアにトークンがあるかどうか、およびそのトークンがまだ期限切れになっていないかどうかを確認する、次のような@observable値があります。loggedIn

class AuthStore {
  @observable token = cookies('api_token');
  @computed get loggedIn() {
    if (!this.token) {
      return false;
    }
    return jwt_expires_in(this.token) > 60;
  }
}

MobX は、アプリケーションの周囲に状態変化を伝播するタイミングを知るためにアクションに依存しますが、loggedIn()変化の結果はユーザーの操作によるものではなく、単に時間の経過によるものです。

したがって、私が疑問に思っているのは、ユーザーの操作なしでこの値を伝播する方法、アプリケーションが期限切れの認証に適切に応答できるように、特定の間隔でそれを「微調整」する方法です。

4

1 に答える 1

3

次のことを簡単に行うことができますか?

class AuthStore { constructor() { setTimeout(() => this.token = null, calc-time-to-expire + 60*1000) } }

それ以外の場合は、有効期限を別の値に保存し、一定の間隔で更新します。@observable expires_in = 0など_setInterval(() => this.expiresIn = token ? 0 : jwt_expires(token), 1000)

于 2016-10-14T05:59:10.320 に答える