2012-05-09 3 views
6

私はZend Frameworkを学んでいますが、私は使い方や概念に疑問を抱いています。ユーザがZend Frameworkにログインしているかどうかを確認するには?

すべてのページへのアクセスを許可するためにユーザーがログに記録されているかどうかを確認します。そうであれば、ページを表示し、表示しない場合は、ページのログインを表示します。

私の主な疑問は、私はどこのユーザーが(各コントローラやフレームワークが自動的に各要求のためにこれをチェックする)をログに記録されるかどうかを確認するために、この(にZend_Auth、Zend_Aclでは、など)とを行うために使用するために必要なものです。

+0

ACLは通常、ユーザーコントロールのレベルのために使用されます。これはあなたのコントローラーのどこかに「デバッグ」に、そしてあなたのコードの上部または初めにそれを置く

場所を。 Zend_Authが必要です。 – Brendan

+0

否定されたユーザーの場合、なぜ-1ですか? –

+1

「あなたの質問には研究努力が示されていません」(それを見るために下向きの矢印にカーソルを合わせます)。多くのチュートリアルがあり、探している情報を提供するZFの優れたマニュアルがあります。いずれにせよ、私の答えは、あなたが正しい方向に動くようにすべきです。がんばろう。 – vascowhite

答えて

5

使用するツールは、あなたがそれのこつを取得するときに使用することは非常に簡単であるZend_Authです。

ユーザーがログインしている場合はチェックするような単純なことができます: -

$auth = Zend_Auth::getInstance(); 
if($auth->hasIdentity()) $loggedIn = true; 

Rob Allen's excellent tutorial on getting started with Zend Authを参照してください。

私が使用方法は、私のコントローラのいずれかで、私はちょうど行うことができるように、認証およびアクセス制御の後に見えるのユーザークラスを設定し、Action Helperとして自分のアプリケーションにそれを注入することである: -

$this->user->checkSomething(); 

承認部分は、パブリックにしたくないサイトのすべての部分に影響を与える必要があり、影響を受けた各コントローラーは、ユーザーがログインしていることを確認する必要があります。アクセス制御は、役割ごと/リソースごとに行われますあなたが必要とする細かい粒度によって異なります。ACLAUTHをマニュアルに入れてください。

+0

アクションヘルパーを使用していないとパフォーマンスが悪いと思われますか? – Songo

+0

どういう意味ですか?アクションヘルパーは必要に応じてロードされるだけで、パフォーマンスに関する問題は一度も気付かれませんでした。そのソースにリンクすることはできますか?私はそれを読むことに興味があるだろう。 – vascowhite

+0

まあ、これは[this](http://stackoverflow.com/questions/4708754/optimising-the-zend-framework)の質問に対する受け入れられた答えに言及されています。また、私はしばらく前に[この記事](http://www.rmauger.co.uk/2009/03/why-the-zend-framework-actionstack-is-evil/)を見つけました。私はアクションヘルパーをめったに使用しないので、私はそれをさらに詳しく調べなかった。これに反対する他の資料がある場合は、plzに投稿してください。 – Songo

2

ユーザがZendFrameworkにログインしているかどうか確認したいですか?これを試してみてください:

if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die; 
関連する問題