現在、reduxおよびredux-thunkミドルウェアを使用しています。
アクションのディスパッチに関するコントロールに関しては、次のようになります。
- ユーザーはこのアクションに十分な権限を持っていますか?
- ユーザーに自分のアクションを確認するよう促します (破壊的なアクションの場合)
このようなコントロールを非同期アクション ( thunk ) 内に配置するのが良いと思います。理由は次のとおりです。
- それは私のコードをDRYerに保ちます(多くのコンポーネント/ビューがアクションをトリガーする可能性がありますが、そのアクションにはactionCreatorが1つしかありません)
- アプリで「何かが起こる」前の最後のポイントです。そのようなコントロールを行うための戦略的な場所のように感じさせる.
質問)
他の redux ユーザーからのフィードバックを探しています。私はこの決定にかなり自信を持っていますが、フィードバックがほとんどない (そしてジュニア開発者である) ため、疑問を感じます。これは、 redux を使用する場合に承認制御を行う正しい方法 ですか?
認可コントローラーを ミドルウェアにするのはどうでしょうか。すべての actionCreator で認証コントロールを複製するのではなく、単一の場所に認証コントロールを保持します。
編集 この可能性を深く掘り下げると、ミドルウェアは当初(dispatch, getState)
、認証ミドルウェアがどのアクションがディスパッチされているか (またはどの actionCreator が使用されているか) を「知る」必要があるという意味しか受け取らないため、すぐに困難になりました。最終的に信頼できないことが判明しました。
その他のポイント
- はい、これはクライアント側です。はい、サーバー側のチェックも行っています。
- これらのタイプのコントロールをストア/リデューサーに配置してはならないことを知っています。彼らは純粋である必要があります。