通常とはまったく異なる方法で認証を処理する特別なルートプレフィックスが必要になるという異常な状況があります。基本的に、このルートプレフィックスに対するすべてのリクエストには、(アプリコントローラー上の) "isAuthorized"で権限が付与され、レイアウトはこの接続用の特別なレイアウトに設定されます。これまでのところ、以下は問題なく機能します。
if(isset($this->params['special']) && $this->params['special'])
{
$this->layout = 'special';
return true;
}
これに加えて発生する必要があるのは、要求が行われるたびに、キー/トークンの組み合わせがデータベースに対して有効なエントリについてチェックされることです。エントリが無効な場合は、特別なレイアウトを使用して「無効なキー/トークンの組み合わせ」のみを出力する必要があります。エントリが有効な場合は、通常どおり続行されます。
そのルートプレフィックス上のすべての接続がチェックされるように、このチェックを行う適切な場所はどこでしょうか。また、失敗時にそのテキストのみを送信するにはどうすればよいですか。認証が失敗した場合に別のコントローラーとビューが使用されるようにルートを変更する方法はありますか?