2017-11-14 20 views
1

ユーザーがログアウトしたときにクリアする必要がある、つまり同じブラウザタブでアプリにログインしている次のユーザーがデータにアクセスできないようにする必要のあるユーザー固有のデータを控えておくアプリがあります。redux security - 状態リセット後に以前の状態にアクセスできますか?

したがって、APIはreduxミドルウェアを使用してAPIからユーザー固有のデータを取得し、そのデータは部品のアプリケーション状態としてreduxに格納されます。ユーザーがログアウトすると、私は状態をクリアするアクションをログアウト派遣: - 、ユーザーがログアウトし、ユーザーが閉じるブラウザタブをしていない場合

const rootReducer = (state: {}, action: AnyAction) => { 
    if(action.type === 'LOG_OUT') 
     return {}; 
    return state; 
} 

すべてが良いようで、状態が状態を空にリセットされますが、私の質問は誰かがdevツールなどを使って、ユーザーがログアウトする前に何とか状態を見ることができますか? reduxは(追加の永続/履歴ミドルウェア/エンハンサーを使用せずに)状態をどこかで保存しますか?それともブラウザメモリに完全に入っていて、ログアウト時に状態がリセットされると、以前の状態はなくなり、アクセスできなくなりますか?

答えて

0

以前の状態オブジェクトへの参照が残っていない場合、ブラウザのJSエンジンは古い状態をガベージコレクトします。これはまた、ブラウザのDevToolsが検査できる変数がないことを意味します。

Reduxコア自体は、以前の状態オブジェクトへの参照を保持しません。

+0

したがって、状態を空オブジェクトに設定する前に、ログインがローカル変数のreducer内に割り当てられる前の状態を、devツールからアクセスできますか?もう1つの質問: "state = {}"または "state = undefined"で状態をリセットする方が良いか、それとも他のより良い/推奨される方法ですか? – Adam

関連する問題