私はさまざまな MVC フレームワークについて多くのチュートリアルを行ってきましたが、承認がコントローラーで行われるのは非常に一般的なようです。なんで?
私の考えでは、コントローラーは、モデル アクションの調整、リダイレクトの処理、およびエラー イベントの処理にのみ使用する必要があります。これらは、特定の要求に依存するものです。コントローラーに承認を配置すると、異なるコントローラーアクションまたは異なるコントローラーで同じモデルアクションを使用するたびに、承認を複製する必要があるようです。Auth がモデル内にある場合、データに対してアクションまたは状態の変更を実行するための一貫した要件があります。
私はグーグルで、承認はモデルまたはコントローラーの一部であるべきですか?などの他の質問を見てきました。しかし、なぜそれが受け入れられた慣習なのか、私にはよくわかりません。
モデル上のコントローラーに Authorization を配置するために欠落している特定の理由はありますか?
コメントの要点を要約するには:
- コントローラーは、モデル レイヤーと現在のビューの状態を変更する責任があります。他には何もありません。
- 承認は、アクションが実行される場所に属します。厳密な MVC パターンに従っている場合、これはモデルである可能性が高く、コントローラーはモデル アクションの使用を承認する責任を負いません。
- Cookie は、他のデータストアと同様に扱う必要があります。つまり、コントローラーによって直接ではなく、モデル内で抽象化して使用します。
- 認証と承認は別々の問題ですが、通常はデータストア (Cookie など) の値に対するチェックが含まれるため、どちらもモデル レイヤーで処理されます。