私は初めてReactとReduxで遊んでいます。私のアプリでは、データをフェッチするためにサードパーティのAPIを使用しています。しかし、ほとんどの保護されているAPIのように、APIに対してリクエストを行うために短いトークンをフェッチする必要があるので、バックグラウンドでトークンを更新できるように、何らかのイベントにタイマーを設定したい。これを行う最善の方法は何ですか?トークンには有効期限がありますので、トークンの有効期限の数分前に新しいトークンを取得するようにタイマーを設定できます。いくつかの経過時間の後の派遣アクション
2
A
答えて
0
何ができるかは、有効期限を使用すると、クッキーとして取得したトークンを保存しsetInterval
機能を使ってクッキーを監視するタイマーを設定しています。クッキーは、自動的にあなたは、この目的のために
import cookie from 'react-cookie';
をNPMパッケージ
react-cookie
を使用することができます
をするとすぐにその有効期限を乗り越えるなどのブラウザから削除され、それがundefinedを返しますので、あなたは再びAPI呼び出しを行うことができます
タイマー
setInterval(function() {
var getCookie = cookie.load('token');
if(getCookie === undefined) {
// send an API fetch request here
}
}, 10000);
ますsetcookie
var s = new Date(0);
s.setUTCSeconds(exp);
cookie.save(key,value, {expires: s});
0
私が思いついた最初の解決策は、約束を入れ子にすることですが、それは最善の解決策ではないかもしれません。
まずトークンを要求し、then
コールバックで実際のデータを要求します。 axios
で
それはこのようなものになるだろう:
axios.get('/my/token/path/')
.then(() => {
axios.get('/my/real/data/path')
.then(() => {
// do something with data...
}
}
はこの要求にキャッチを追加します。あなたが言ったようにトークンの有効期限がある場合は、それを保存して、その日付が期限切れでないかどうかをチェックして新しいトークンを要求するか、またはその条件に基づいて既存のものを取ることができます。擬似コードで
例:
function getTokenPromise() {
if ('cookie with token exists') return Promise.resolve('my token from cookie');
return axios.get('/my/token/path/');
}
// somewhere else in the code
getTokenPromise().then(() => {
//do something with data
});
0
あなたは、ステートレスルートに行くことができ、あなたはどのトークンを持っていても常にAPIに照会し、不正な応答を処理できますか?
ある時点で不正な応答を処理する必要があります。そうすれば、両方の問題が解決されます。
おそらくaxios
の呼び出しをラップするとこれが有効になりますか?
関連する問題
- 1. 特定の日時の派遣アクション
- 2. 時間の経過後のアクションの表示ボタン
- 3. 派遣XFormsの対応が、アクションが
- 4. 時間の経過後のコールタイムアウト機能
- 5. 時間経過後の産卵C
- 6. Android - いくつかの時間の後にアクションを取る
- 7. 経過時間
- 8. GAMS - 経済派遣 - QCPとNLP
- 9. C#タイマーの経過時間?
- 10. のitemRenderer派遣カスタムイベント
- 11. 最後のパスワードをリセットしてからの経過時間
- 12. 最後のタイムスタンプからの経過時間を確認する
- 13. 派遣アクションの作成者の構文は反応し、Reduxの
- 14. PHPUnitの派遣コントローラのPOSTでのアクションとフォーム
- 15. 時間の経過後に反応しないジェスチャー認識器
- 16. statusnet - 時間間隔の経過後にページコンテンツを更新する
- 17. 派遣アクション - 反応 - Reduxの中のTodoアプリ
- 18. 2つのエントリ間の経過時間の計算
- 19. 経過時間を見つける
- 20. 派遣イベント
- 21. PHPの時間の経過後のファイルの削除
- 22. 時間の経過後のPythonファイルの自動終了
- 23. Oracle経過時間とCPU時間?
- 24. Android - 時間経過後のアクティビティの破棄
- 25. リフトのWebフレームワークDRY派遣
- 26. 即時に特定の時間が経過した後にコードのアクションを実行
- 27. プロミスからレビュックスでアクションを派遣するには?
- 28. mclapplyユーザーの時間が経過時間よりも大きい
- 29. シグナルハンドラの印刷時間の経過は?
- 30. アンドロイドAlarmManager経過時間は
私はこの1つが好きで、それにショットをつけて報告するつもりです – Lutando
あなたに質問があれば教えてください –