2

Web サイトでアクセスする各ページの状態を確認する必要があります。

基本的に、ユーザー アカウントには時間制限があり、ユーザー アカウントの有効期限が切れた場合は、更新ページにリダイレクトする必要があります。これにより、ユーザーはシステムにログインできますが、更新ページにしかアクセスできません。

関数を作成して、すべてのコントローラーのすべてのアクションで呼び出すこともできますが、これは意味がありません。ブートストラップでハッキングを行うこともできますが、これも正しい解決策ではないようです。

どうすればこれを正しい方法で行うことができますか? それとも、ブートストラップが正しい方法ですか?

4

2 に答える 2

5

それを実現する最善の方法は、アプリケーションに追加Zend_Controller_Plugin_Abstractしてメソッドにロジックを実装することだと思いますpreDispatch

チェックを行い、Redirector ヘルパーを使用してユーザーをリダイレクトできます。

$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
$redirector->gotoSimpleAndExit('myaction', 'mycontroller', 'mymodule');
于 2012-07-02T14:32:46.600 に答える
2

一般的に言えば、私はZendの知識が不足しているため、このロジックを配置する場所は認証レイヤー/クラス/何でもいいと思います。

ユーザーセッションの有効性を確認する集中的な場所があると思います。この特別な条件をこの場所に簡単に追加できます。別の方法でアクセス制御を維持する場合は、ブートストラップの方が適している可能性があります。

アプリケーションにはおそらく単一のアクセスポイントがあるため、オプションは常に制限されています。または、ユーザーが要求したページを表示する前に、すべての要求が通過する少なくとも限られた数のクラスがあります。

このような条件を厳密に実装しないように注意してください。たとえば、API リクエスト (存在する場合) が更新ページに転送されないようにします。

于 2012-07-02T14:18:02.570 に答える