2016-10-04 4 views
0

私はCodeIgniterを数日間使っています。私はそれを大好きです。初心者にとっては、Webアプリケーションを作成するための素晴らしいフレームワークです。Tank authを使用して未登録のユーザーからコンテンツを保護するにはどうすればよいですか?

私はログインシステムを設定するためにタンク認証を使用していますが、今まで私は同じことをやっていました。

しかし、理解できないことが1つあります。私はタンク認証コードを研究していて、グーグルではいますが、この非常に単純な問題を回避することはできません。登録されていないユーザーから自分のウェブサイトのコンテンツを保護するにはどうすればいいですか? CodeIgniterで使用される方法は何ですか?

たとえば、私はコントローラshow showを持つ製品を持っています。 www.mywebsite.com/index.php/products/showと入力すると、私はすべて自分のウェブサイトで見ることができます。今、登録されていないユーザーが自分の製品にアクセス(参照)することを禁止するにはどうすればよいですか?

これはおそらく愚かな質問だと私は理解していますが、私はちょうどこれについてのまともな理解なしに移動することはできません。それは基本的なグーグルは答えを持っていない...(または私は正確に尋ねる方法を知らない)

答えて

0

タンク認証が正しくインストールされ、設定されていると仮定すると、ログイン画面に誰かをリダイレクトすることができます。特定のコントローラー機能のために既にログインしています。

機能の開始時にこれを使用すると、他のユーザーがリダイレクトされるため、ログインしたユーザーだけが読み込むことができます。同様に、コントローラ全体をロックオフにしたい場合は、コンストラクタにそのコントローラを配置します。

Tank Authにバンドルされているウェルカムコントローラは、ログインしたユーザーだけが「今すぐログインしています」ページを見ることができるため、その良い例を示しています。

+0

ありがとう、それは素晴らしい答えです!ただ確信してください: ユーザがログインしている場合にのみ、ホームページの上にナビゲーションメニューを表示して「製品」を表示します。ヘッダビューでnavメニューを作成し、静的ページを処理するコントローラページを持っています。 2つのビューheader_loggedとheader_notloggedを作成して、 '($ this-> tank_auth-> is_logged_in()){ $ this-> load-> view( 'templates/header_logged'、$データ); } else { $ this-> load-> view( 'templates/header_notlogged'、$ data); } ' 私のコントローラーのページに? –

+0

コントローラスタイルのロジックをビューから守ることについて厳密にしたいのであれば、そうすることができますが、それはビューの中にifステートメントを置くだけのユースケースになります。そのようなメニューへのわずかな変更。したがって、メニューにProducts項目を追加すると、ビューに「<?php if($ this-> tank_auth-> is_logged_in(){?> * HTML for Productsメニュー項目* ' –

関連する問題